[comp.sys.amiga] I'm a little teapot

peter@sugar.UUCP (Peter da Silva) (11/06/87)

I've gotten many requests for the "teapot" database since I reported that I
received it (about 20 so far). I've been responding to these individually,
but I think the overall net load would go down if I reposted it. What say?
-- 
-- Peter da Silva  `-_-'  ...!hoptoad!academ!uhnix1!sugar!peter
-- Disclaimer: These U aren't mere opinions... these are *values*.

dtchen@cory.Berkeley.EDU.UUCP (11/08/87)

In article <994@sugar.UUCP> peter@sugar.UUCP (Peter da Silva) writes:
>I've gotten many requests for the "teapot" database since I reported that I
>received it (about 20 so far). I've been responding to these individually,
>but I think the overall net load would go down if I reposted it. What say?
>-- 
>-- Peter da Silva  `-_-'  ...!hoptoad!academ!uhnix1!sugar!peter
>-- Disclaimer: These U aren't mere opinions... these are *values*.

I say you should post it.  Thanks.

-Dave



David Chen                            |     1511 Hearst Ave. Apt. B
dtchen@cory.Berkeley.EDU              |     Berkeley, CA  94703
                 "No, this is being hit on the head lessons."
                 "What a stupid concept."

tow@parcvax.Xerox.COM (Robert Francis Tow) (11/09/87)

In article <994@sugar.UUCP> peter@sugar.UUCP (Peter da Silva) writes:
>I've gotten many requests for the "teapot" database since I reported that I
>received it (about 20 so far). I've been responding to these individually,
>but I think the overall net load would go down if I reposted it. What say?

	Please do repost the teapot database. This is one of those 
classics that many would benefit from having.


Rob Tow
ParcPlace Systems
Graphics Wizard ("I can call spirits from the vasty deep")
2400 Geng Road
Palo Alto CA. 94303

Internet:    rob@ParcPlace.com
USENET:      ...!{ucbvax, allegra, seismo, pyramid, decvax}!sun!pplace!tow

peter@sugar.UUCP (Peter da Silva) (11/11/87)

By popular demand:


From uucp Sun Oct 25 06:26 EST 1987
>From uucp Sun Oct 25 03:27 EST 1987 remote from splut
>From uucp Sat Oct 24 23:43 CDT 1987 remote from nuchat
>From EDDIE.MIT.EDU!ll-xn!harvard!umb!ileaf!io!zapp!carlos  Sat Oct 24 17:05:39 1987 remote from uunet
Received: from EDDIE.MIT.EDU by uunet.UU.NET (5.54/1.14) 
	id AA24283; Sat, 24 Oct 87 17:05:39 EDT
Received: by EDDIE.MIT.EDU with UUCP with smail2.5 with sendmail-5.45/4.7 id <AA18296@EDDIE.MIT.EDU>; Sat, 24 Oct 87 17:05:04 EDT
Received:  by XN.LL.MIT.EDU; Sat, 24 Oct 87 16:59:07 EDT
Posted-Date: Fri, 23 Oct 87 16:41:06 EDT
Received: by harvard.harvard.edu; Sat, 24 Oct 87 17:06:21 EDT
Received: by umb.umb.edu; Sat, 24 Oct 87 15:56:09 EDT
Received: by ileaf.uucp (1.1/SMI-3.0DEV3)
	id AA02888; Fri, 23 Oct 87 16:42:00 EDT
Received: from zapp.io.uucp by io.uucp (1.1/SMI-3.0DEV3)
	id AA04534; Fri, 23 Oct 87 16:41:53 EDT
Received: by zapp.io.uucp (3.2/SMI-3.0DEV3)
	id AA00543; Fri, 23 Oct 87 16:41:06 EDT
Date: Fri, 23 Oct 87 16:41:06 EDT
From: uunet!EDDIE.MIT.EDU!ll-xn!harvard!umb!ileaf!io!zapp!carlos (Carlos Smith)
Message-Id: <8710232041.AA00543@zapp.io.uucp>
To: sugar!peter
Subject: teapot data
Status: R


Here is the teapot data I downloaded. I think it's what you want. First
vertices, then patches.

Article 46 of comp.graphics:
Path: io!ileaf!umb!husc6!panda!genrad!decvax!ucbvax!ucsfcgl!bic
From: bic@socrates.ucsf.edu (Bruce Cohen%CGL)
Newsgroups: comp.graphics
Subject: Teapot (Part 1 of 3)
Message-ID: <10022@cgl.ucsf.edu.ucsfcgl.UUCP>
Date: 21 Jan 87 20:55:54 GMT
Sender: daemon@ucsfcgl.UUCP
Reply-To: bic@socrates.ucsf.edu.UUCP ()
Organization: UCSF Computer Graphics Lab
Lines: 337

Beginning of part 1 of the distribution. This contains the vertex data. It
ends with a line saying "This is the end of the vertex data for the teapot."


The following is from IEEE Computer Graphics and Applications, January, 1987:
"The Origins of the Teapot," by Frank Crow, Xerox PARC (from conversations
with Martin Newell and Jim Blinn), pages 8-19. The article describes the origin
of the computer model for the teapot which is frequently seen in computer
graphics images. The article includes pictures of the original teapot, of
a hand-drawn sketch used in modeling, and of many computer-generated pictures
of the teapot. The article describes the history of the teapot, the modeling
process, and why the teapot shape is interesting.

If you are interested in more articles of this type, in more code or data
(such as the teapot data below) or have code or data that you would be 
willing to share, please contact: Chip Hatfield, Lawrence Livermore National
Lab, PO Box 5504, Livermore, CA 94550 or HATFIELD@LLL-ICDC.ARPA.

-------------------------------------------------------------------

TeaPotWithBot.shape-- Martin Newell's Teapot with a bottom added
Created by: crow.pa at February 28, 1986 11:09:32 am PST

SurfaceType ~ Bezier, Closed, CountFromOne -- 306 vertices, 32 patches

Vertices ~ xyz: triple 
 
   1.4   0.0   2.4
   1.4   -0.784   2.4
   0.784   -1.4   2.4
   0.0   -1.4   2.4
   1.3375   0.0   2.53125
   1.3375   -0.749   2.53125
   0.749   -1.3375   2.53125
   0.0   -1.3375   2.53125
   1.4375   0.0   2.53125
   1.4375   -0.805   2.53125
   0.805   -1.4375   2.53125
   0.0   -1.4375   2.53125
   1.5   0.0   2.4
   1.5   -0.84   2.4
   0.84   -1.5   2.4
   0.0   -1.5   2.4
   -0.784   -1.4   2.4
   -1.4   -0.784   2.4
   -1.4   0.0   2.4
   -0.749   -1.3375   2.53125
   -1.3375   -0.749   2.53125
   -1.3375   0.0   2.53125
   -0.805   -1.4375   2.53125
   -1.4375   -0.805   2.53125
   -1.4375   0.0   2.53125
   -0.84   -1.5   2.4
   -1.5   -0.84   2.4
   -1.5   0.0   2.4
   -1.4   0.784   2.4
   -0.784   1.4   2.4
   0.0   1.4   2.4
   -1.3375   0.749   2.53125
   -0.749   1.3375   2.53125
   0.0   1.3375   2.53125
   -1.4375   0.805   2.53125
   -0.805   1.4375   2.53125
   0.0   1.4375   2.53125
   -1.5   0.84   2.4
   -0.84   1.5   2.4
   0.0   1.5   2.4
   0.784   1.4   2.4
   1.4   0.784   2.4
   0.749   1.3375   2.53125
   1.3375   0.749   2.53125
   0.805   1.4375   2.53125
   1.4375   0.805   2.53125
   0.84   1.5   2.4
   1.5   0.84   2.4
   1.75   0.0   1.875
   1.75   -0.98   1.875
   0.98   -1.75   1.875
   0.0   -1.75   1.875
   2.0   0.0   1.35
   2.0   -1.12   1.35
   1.12   -2.0   1.35
   0.0   -2.0   1.35
   2.0   0.0   0.9
   2.0   -1.12   0.9
   1.12   -2.0   0.9
   0.0   -2.0   0.9
   -0.98   -1.75   1.875
   -1.75   -0.98   1.875
   -1.75   0.0   1.875
   -1.12   -2.0   1.35
   -2.0   -1.12   1.35
   -2.0   0.0   1.35
   -1.12   -2.0   0.9
   -2.0   -1.12   0.9
   -2.0   0.0   0.9
   -1.75   0.98   1.875
   -0.98   1.75   1.875
   0.0   1.75   1.875
   -2.0   1.12   1.35
   -1.12   2.0   1.35
   0.0   2.0   1.35
   -2.0   1.12   0.9
   -1.12   2.0   0.9
   0.0   2.0   0.9
   0.98   1.75   1.875
   1.75   0.98   1.875
   1.12   2.0   1.35
   2.0   1.12   1.35
   1.12   2.0   0.9
   2.0   1.12   0.9
   2.0   0.0   0.45
   2.0   -1.12   0.45
   1.12   -2.0   0.45
   0.0   -2.0   0.45
   1.5   0.0   0.225
   1.5   -0.84   0.225
   0.84   -1.5   0.225
   0.0   -1.5   0.225
   1.5   0.0   0.15
   1.5   -0.84   0.15
   0.84   -1.5   0.15
   0.0   -1.5   0.15
   -1.12   -2.0   0.45
   -2.0   -1.12   0.45
   -2.0   0.0   0.45
   -0.84   -1.5   0.225
   -1.5   -0.84   0.225
   -1.5   0.0   0.225
   -0.84   -1.5   0.15
   -1.5   -0.84   0.15
   -1.5   0.0   0.15
   -2.0   1.12   0.45
   -1.12   2.0   0.45
   0.0   2.0   0.45
   -1.5   0.84   0.225
   -0.84   1.5   0.225
   0.0   1.5   0.225
   -1.5   0.84   0.15
   -0.84   1.5   0.15
   0.0   1.5   0.15
   1.12   2.0   0.45
   2.0   1.12   0.45
   0.84   1.5   0.225
   1.5   0.84   0.225
   0.84   1.5   0.15
   1.5   0.84   0.15
   -1.6   0.0   2.025
   -1.6   -0.3   2.025
   -1.5   -0.3   2.25
   -1.5   0.0   2.25
   -2.3   0.0   2.025
   -2.3   -0.3   2.025
   -2.5   -0.3   2.25
   -2.5   0.0   2.25
   -2.7   0.0   2.025
   -2.7   -0.3   2.025
   -3.0   -0.3   2.25
   -3.0   0.0   2.25
   -2.7   0.0   1.8
   -2.7   -0.3   1.8
   -3.0   -0.3   1.8
   -3.0   0.0   1.8
   -1.5   0.3   2.25
   -1.6   0.3   2.025
   -2.5   0.3   2.25
   -2.3   0.3   2.025
   -3.0   0.3   2.25
   -2.7   0.3   2.025
   -3.0   0.3   1.8
   -2.7   0.3   1.8
   -2.7   0.0   1.575
   -2.7   -0.3   1.575
   -3.0   -0.3   1.35
   -3.0   0.0   1.35
   -2.5   0.0   1.125
   -2.5   -0.3   1.125
   -2.65   -0.3   0.9375
   -2.65   0.0   0.9375
   -2.0   -0.3   0.9
   -1.9   -0.3   0.6
   -1.9   0.0   0.6
   -3.0   0.3   1.35
   -2.7   0.3   1.575
   -2.65   0.3   0.9375
   -2.5   0.3   1.125
   -1.9   0.3   0.6
   -2.0   0.3   0.9
   1.7   0.0   1.425
   1.7   -0.66   1.425
   1.7   -0.66   0.6
   1.7   0.0   0.6
   2.6   0.0   1.425
   2.6   -0.66   1.425
   3.1   -0.66   0.825
   3.1   0.0   0.825
   2.3   0.0   2.1
   2.3   -0.25   2.1
   2.4   -0.25   2.025
   2.4   0.0   2.025
   2.7   0.0   2.4
   2.7   -0.25   2.4
   3.3   -0.25   2.4
   3.3   0.0   2.4
   1.7   0.66   0.6
   1.7   0.66   1.425
   3.1   0.66   0.825
   2.6   0.66   1.425
   2.4   0.25   2.025
   2.3   0.25   2.1
   3.3   0.25   2.4
   2.7   0.25   2.4
   2.8   0.0   2.475
   2.8   -0.25   2.475
   3.525   -0.25   2.49375
   3.525   0.0   2.49375
   2.9   0.0   2.475
   2.9   -0.15   2.475
   3.45   -0.15   2.5125
   3.45   0.0   2.5125
   2.8   0.0   2.4
   2.8   -0.15   2.4
   3.2   -0.15   2.4
   3.2   0.0   2.4
   3.525   0.25   2.49375
   2.8   0.25   2.475
   3.45   0.15   2.5125
   2.9   0.15   2.475
   3.2   0.15   2.4
   2.8   0.15   2.4
   0.0   0.0   3.15
   0.0   -0.002   3.15
   0.002   0.0   3.15
   0.8   0.0   3.15
   0.8   -0.45   3.15
   0.45   -0.8   3.15
   0.0   -0.8   3.15
   0.0   0.0   2.85
   0.2   0.0   2.7
   0.2   -0.112   2.7
   0.112   -0.2   2.7
   0.0   -0.2   2.7
   -0.002   0.0   3.15
   -0.45   -0.8   3.15
   -0.8   -0.45   3.15
   -0.8   0.0   3.15
   -0.112   -0.2   2.7
   -0.2   -0.112   2.7
   -0.2   0.0   2.7
   0.0   0.002   3.15
   -0.8   0.45   3.15
   -0.45   0.8   3.15
   0.0   0.8   3.15
   -0.2   0.112   2.7
   -0.112   0.2   2.7
   0.0   0.2   2.7
   0.45   0.8   3.15
   0.8   0.45   3.15
   0.112   0.2   2.7
   0.2   0.112   2.7
   0.4   0.0   2.55
   0.4   -0.224   2.55
   0.224   -0.4   2.55
   0.0   -0.4   2.55
   1.3   0.0   2.55
   1.3   -0.728   2.55
   0.728   -1.3   2.55
   0.0   -1.3   2.55
   1.3   0.0   2.4
   1.3   -0.728   2.4
   0.728   -1.3   2.4
   0.0   -1.3   2.4
   -0.224   -0.4   2.55
   -0.4   -0.224   2.55
   -0.4   0.0   2.55
   -0.728   -1.3   2.55
   -1.3   -0.728   2.55
   -1.3   0.0   2.55
   -0.728   -1.3   2.4
   -1.3   -0.728   2.4
   -1.3   0.0   2.4
   -0.4   0.224   2.55
   -0.224   0.4   2.55
   0.0   0.4   2.55
   -1.3   0.728   2.55
   -0.728   1.3   2.55
   0.0   1.3   2.55
   -1.3   0.728   2.4
   -0.728   1.3   2.4
   0.0   1.3   2.4
   0.224   0.4   2.55
   0.4   0.224   2.55
   0.728   1.3   2.55
   1.3   0.728   2.55
   0.728   1.3   2.4
   1.3   0.728   2.4
   0.0   0.0   0.0
   1.5   0.0   0.15
   1.5   0.84   0.15
   0.84   1.5   0.15
   0.0   1.5   0.15
   1.5   0.0   0.075
   1.5   0.84   0.075
   0.84   1.5   0.075
   0.0   1.5   0.075
   1.425   0.0   0.0
   1.425   0.798   0.0
   0.798   1.425   0.0
   0.0   1.425   0.0
   -0.84   1.5   0.15
   -1.5   0.84   0.15
   -1.5   0.0   0.15
   -0.84   1.5   0.075
   -1.5   0.84   0.075
   -1.5   0.0   0.075
   -0.798   1.425   0.0
   -1.425   0.798   0.0
   -1.425   0.0   0.0
   -1.5   -0.84   0.15
   -0.84   -1.5   0.15
   0.0   -1.5   0.15
   -1.5   -0.84   0.075
   -0.84   -1.5   0.075
   0.0   -1.5   0.075
   -1.425   -0.798   0.0
   -0.798   -1.425   0.0
   0.0   -1.425   0.0
   0.84   -1.5   0.15
   1.5   -0.84   0.15
   0.84   -1.5   0.075
   1.5   -0.84   0.075
   0.798   -1.425   0.0
   1.425   -0.798   0.0
   
This is the end of the vertex data for the teapot.

------



****************************************************************************

Article 47 of comp.graphics:
Path: io!ileaf!umb!husc6!panda!genrad!decvax!decwrl!ucbvax!ucsfcgl!bic
From: bic@socrates.ucsf.edu (Bruce Cohen%CGL)
Newsgroups: comp.graphics
Subject: Teapot (Part 2 of 3)
Message-ID: <10023@cgl.ucsf.edu.ucsfcgl.UUCP>
Date: 21 Jan 87 20:58:23 GMT
Sender: daemon@ucsfcgl.UUCP
Reply-To: bic@socrates.ucsf.edu.UUCP ()
Organization: UCSF Computer Graphics Lab
Lines: 161

Beginning of part 2 of the distribution. This contains the patch data and the
code. It ends with a line saying "This is the end of the patch data and code
for the teapot."

Patches ~ index: integer vertices: nats

-- rim
16       1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16
16       4  17  18  19  8  20  21  22  12  23  24  25  16  26  27  28
16       19  29  30  31  22  32  33  34  25  35  36  37  28  38  39  40
16       31  41  42  1  34  43  44  5  37  45  46  9  40  47  48  13
-- body
16       13  14  15  16  49  50  51  52  53  54  55  56  57  58  59  60
16       16  26  27  28  52  61  62  63  56  64  65  66  60  67  68  69
16       28  38  39  40  63  70  71  72  66  73  74  75  69  76  77  78
16       40  47  48  13  72  79  80  49  75  81  82  53  78  83  84  57
16       57  58  59  60  85  86  87  88  89  90  91  92  93  94  95  96
16       60  67  68  69  88  97  98  99  92  100  101  102  96  103  104  105
16       69  76  77  78  99  106  107  108  102  109  110  111  105  112  113  114
16       78  83  84  57  108  115  116  85  111  117  118  89  114  119  120  93
-- handle
16       121  122  123  124  125  126  127  128  129  130  131  132  133  134  135  136
16       124  137  138  121  128  139  140  125  132  141  142  129  136  143  144  133
16       133  134  135  136  145  146  147  148  149  150  151  152  69  153  154  155
16       136  143  144  133  148  156  157  145  152  158  159  149  155  160  161  69
-- spout
16       162  163  164  165  166  167  168  169  170  171  172  173  174  175  176  177
16       165  178  179  162  169  180  181  166  173  182  183  170  177  184  185  174
16       174  175  176  177  186  187  188  189  190  191  192  193  194  195  196  197
16       177  184  185  174  189  198  199  186  193  200  201  190  197  202  203  194
-- lid
16       204  204  204  204  207  208  209  210  211  211  211  211  212  213  214  215
16       204  204  204  204  210  217  218  219  211  211  211  211  215  220  221  222
16       204  204  204  204  219  224  225  226  211  211  211  211  222  227  228  229
16       204  204  204  204  226  230  231  207  211  211  211  211  229  232  233  212
16       212  213  214  215  234  235  236  237  238  239  240  241  242  243  244  245
16       215  220  221  222  237  246  247  248  241  249  250  251  245  252  253  254
16       222  227  228  229  248  255  256  257  251  258  259  260  254  261  262  263
16       229  232  233  212  257  264  265  234  260  266  267  238  263  268  269  242
-- bottom
16       270  270  270  270  279  280  281  282  275  276  277  278  271  272  273  274
16       270  270  270  270  282  289  290  291  278  286  287  288  274  283  284  285
16       270  270  270  270  291  298  299  300  288  295  296  297  285  292  293  294
16       270  270  270  270  300  305  306  279  297  303  304  275  294  301  302  271


{----------------------------------------------------------------------------}
{ The following Pascal procedure "Display_Patches" will draw a wire frame
representation of the patch data in the arrays "Ducks" and "Patches". The
loading of the data into the arrays is not shown. The following global
declarations are assumed: }
{----------------------------------------------------------------------------}
CONST
Degree      = 3 ;     { The degree of the Bezier'spline used }
Duck_Count  = 306 ;   { The number of control points "Ducks" }
Patch_Count = 32 ;    { The number of surface patches }

TYPE             
Duck_Type        = RECORD X , Y , Z : Real ; END ;            
                     { Each duck is a three-vector }
Duck_Index_Type  = 1 .. Duck_Count ;
Duck_Array_Type  = ARRAY [ 1 .. Duck_Count ] OF Duck_Type ;
Patch_Type       = ARRAY [ 0 .. Degree , 0 .. Degree ] OF Duck_Index_Type ;
                     { Each patch points to 16 ducks }
Patch_Array_Type = ARRAY [ 1 .. Patch_Count ] OF Patch_Type ;

VAR
Ducks       : Duck_Array_Type ;    { store ducks here }
Patches     : Patch_Array_Type ;   { which ducks go with which patches }
{----------------------------------------------------------------------------}
{ The procedure "Display_Patches" and its support procedures are given below. 
Note that the parameter "Steps" controls the granularity of the subdivision of
each patch for display. Try a value of 6 to start, then experiment. The 
procedures "Move" and "Draw" should be replaced with the graphics procedures 
appropriate for your system. }           
{----------------------------------------------------------------------------}
PROCEDURE Blend_Vector (D0 , D1 , D2 , D3 : Duck_Type ; T : Real ;  
   VAR Result : Duck_Type) ;
                                        
BEGIN { Calculate vector cubic Bezier' spline value at parameter T }
Result.X := D0.X*(1-T)*(1-T)*(1-T) + D1.X*3*T*(1-T)*(1-T) +
            D2.X*3*T*T*(1-T)       + D3.X*T*T*T ;
Result.Y := D0.Y*(1-T)*(1-T)*(1-T) + D1.Y*3*T*(1-T)*(1-T) +
            D2.Y*3*T*T*(1-T)       + D3.Y*T*T*T ;
Result.Z := D0.Z*(1-T)*(1-T)*(1-T) + D1.Z*3*T*(1-T)*(1-T) +
            D2.Z*3*T*T*(1-T)       + D3.Z*T*T*T ;
END ; { procedure blend_vector }
{----------------------------------------------------------------------------}
PROCEDURE Display_Curve (D0, D1, D2, D3 : Duck_Type ; Steps : Integer) ;

VAR                        { Find "Step+1" points on the spline and }
T, Step  : Real ;          { draw "Step" line segments
Temp     : Duck_Type ;

BEGIN
Step := 1 / Steps ;
T := Step ;
Move (D0.X, D0.Y, D0.Z) ;             { move to start of spline }
WHILE T < 1 + Step / 2 DO
   BEGIN                                                     
   Blend_Vector (D0, D1, D2, D3, T, Temp) ;
   Draw (Temp.X, Temp.Y, Temp.Z) ;    { draw line segment to next point }
   T := T + Step ;
   END ; { While t < }
END ; { procedure display_curve }
{----------------------------------------------------------------------------}
{----------------------------------------------------------------------------}
PROCEDURE Display_Patch (VAR Patch : Patch_Type ; Steps : Integer) ;

VAR
T    : Real ;
Step : Real ;
D0, D1, D2, D3 : Duck_Type ;   
                     { ducks for a particular constant U or V value }
BEGIN
Step := 1 / Steps ;
T := 0 ;
WHILE T < 1 + Step / 2 DO
   BEGIN                        { splines of constant U }
   Blend_Vector (Ducks [ Patch[0, 0] ], Ducks [ Patch[0, 1] ],
      Ducks [ Patch[0, 2] ], Ducks [ Patch[0, 3] ], T, D0) ;
   Blend_Vector (Ducks [ Patch[1, 0] ], Ducks [ Patch[1, 1] ],
      Ducks [ Patch[1, 2] ], Ducks [ Patch[1, 3] ], T, D1) ;
   Blend_Vector (Ducks [ Patch[2, 0] ], Ducks [ Patch[2, 1] ],
      Ducks [ Patch[2, 2] ], Ducks [ Patch[2, 3] ], T, D2) ;
   Blend_Vector (Ducks [ Patch[3, 0] ], Ducks [ Patch[3, 1] ],
      Ducks [ Patch[3, 2] ], Ducks [ Patch[3, 3] ], T, D3) ;

   Display_Curve (D0, D1, D2, D3, Steps) ;                                 
                                                                      
                              { splines of constant V }         
   Blend_Vector (Ducks [ Patch[0, 0] ], Ducks [ Patch[1, 0] ],
      Ducks [ Patch[2, 0] ], Ducks [ Patch[3, 0] ], T, D0) ;
   Blend_Vector (Ducks [ Patch[0, 1] ], Ducks [ Patch[1, 1] ],
      Ducks [ Patch[2, 1] ], Ducks [ Patch[3, 1] ], T, D1) ;
   Blend_Vector (Ducks [ Patch[0, 2] ], Ducks [ Patch[1, 2] ],
      Ducks [ Patch[2, 2] ], Ducks [ Patch[3, 2] ], T, D2) ;
   Blend_Vector (Ducks [ Patch[0, 3] ], Ducks [ Patch[1, 3] ],
      Ducks [ Patch[2, 3] ], Ducks [ Patch[3, 3] ], T, D3) ;

   Display_Curve (D0, D1, D2, D3, Steps) ;
   T := T + Step ;
   END ; { While t < }
END ; { procedure display_patch }
{----------------------------------------------------------------------------}
PROCEDURE Display_Patches (Steps : Integer) ;

VAR                     { "Steps" tells how much to divide up the patches }
Index : Integer ; 

BEGIN
FOR Index := 1 TO Patch_Count DO
   BEGIN
   Display_Patch (Patches[Index], Steps) ;
   END ; { for index }
END ; { procedure display_patches }
{ by Charles W. Grant, Lawrence Livermore National Laboratory }
{----------------------------------------------------------------------------}

This is the end of the patch data and code for the teapot.
------



			Carlos Smith
			uucp:...!harvard!umb!ileaf!carlos
			Bix:	carlosmith



-- 
-- Peter da Silva  `-_-'  ...!hoptoad!academ!uhnix1!sugar!peter
-- Disclaimer: These U aren't mere opinions... these are *values*.

brad@cayman.UUCP (Brad Parker) (11/16/87)

Ok, now I've got the teapot. But what good will it be without a color
mandrill to map onto it's surface?

Anyone have the "color gorilla?"

-brad
-- 

Brad Parker
Cayman Systems			"Mama's little baby likes violent sex..."
harvard!cayman!brad			   - from a song I heard on the radio.

keithd@cadovax.UUCP (Keith Doyle) (11/17/87)

In article <615@parcvax.Xerox.COM> tow@parcvax.xerox.com.UUCP (Robert Francis Tow) writes:
>	Please do repost the teapot database. This is one of those 
>classics that many would benefit from having.

Uh oh, sounds like time for a Sculpt-3D rendition of "still life with
rocking-chair, Boing ball, teapot, mandrill, and unicycle, over
checkerboard landscape with lens."

Keith Doyle
#  {ucbvax,decvax}!trwrb!cadovax!keithd  Contel Business Systems 213-323-8170
"FIN"

thomas%spline.uucp@utah-gr.UUCP (Spencer W. Thomas) (11/17/87)

The "Utah Raster Toolkit" comes with a picture of the Mandrill.  We
will shortly be posting an announcement of the new release (it's ready
for Beta-test right now).  Unfortunately, if you don't have Arpanet
access, you have to send a check in exchange for a tape (unless you
can get a friend to give it to you free -- we don't prohibit that).


=Spencer   ({ihnp4,decvax}!utah-cs!thomas, thomas@cs.utah.edu)

jfoust@well.UUCP (11/20/87)

Are you talking about the famous Utah teapot?  I have a program
that generates it for a given spline density, and I've modified
it for output to Sculpt 3D format.  Amazing, huh?  Maybe I should
make a Teapot module for InterChange, so we can convert the teapot
to Forms in Flight, VideoScape, Animator Apprentice, etc.  :-)
Seriously, I think I uploaded the Sculpt version of the teapot
to People Link.  Also, I got the program from the AutoCAD forum
on Compuserve, it was written by one of the big technoweenies
at AutoDesk, John Walker.  I apologize if I replied to this
and other people did before this.  I use 'fgrep' to read news.
Seriously.  It beats 'rn' at 1200 baud.