
//------------------------------------------------------------------->
//------------------------------------------------------------------->
//
// "Paul's Primitive POV People", or "P4".
//
// Created by: Paul T. Dawson
//             ptdawson@voicenet.com
//             http://www.voicenet.com/~ptdawson
//
//------------------------------------------------------------------->
//------------------------------------------------------------------->

This is a very quick introduction to the "P4" include file, which lets
you build semi-realistic raytraced people.

Files needed:

        1 - P4DEF_00.INC
        2 - P4_MAIN.INC
        3 - P4_TEST.POV

1 - The P4DEF_00.INC file lists all of the parameters and settings for
    one person. Make a copy of this file, for example: P4DEF_01.INC.
    Then edit the copy to make any changes you want.

2 - The big file is P4_MAIN.INC. This has a little bit of everything
    in it. Some of the sections are very sloppy, and/or un-artistic!

3 - To test your new person, run P4_TEST.POV. You will have to edit
    that a little, so it calls the correct P4DEF_??.INC file. The test
    file has several camera settings, to zoom in on different areas.

//------------------------------------------------------------------->
//------------------------------------------------------------------->

The test file, and YOUR scene files, should include just the proper
P4DEF_??.INC files. Those will call P4_MAIN.INC, and then your main
file gets an object called "One_Person" back. Then just show that!

//------------------------------------------------------------------->
//------------------------------------------------------------------->

OK, here are the legal parameters for the people. Please, if you make
any additions to these, send them to me, and I'll add them to the big
"official" version. There's a lot of room for improvements here!

These all can have any POV texture, including (but not limited to) a
pigment, texture, normal, image_map, etc.

        P4_Eye_Texture
        P4_Glasses_Texture
        P4_Hair_Texture
        P4_Hat_Texture
        P4_Shirt_Texture
        P4_Shoe_Texture
        P4_Shorts_Texture
        P4_Skin_Texture

//------------------------------------------------------------------->
//------------------------------------------------------------------->

These each take one integer number.

        P4_Eye_Type     = (1 only)
        P4_Glasses_Type = (0 no glasses) (1 glasses)
        P4_Hair_Type    = (1 short) (2 frizzy) (3 long)
        P4_Hand_Type    = (1 fist) (2 fingers)
        P4_Hat_Type     = (1 painters) (2 propellor beanie)
                          (3 helmet) (4 D.P. Gumby) (5 baseball)
        P4_Mouth_Type   = (1 straight) (2 open) (3 smile) (4 frown)
                          (5 narrow) Note: those are all pretty bad!
        P4_Nose_Type    = (1 small) (2 medium)
        P4_Shirt_Type   = (2 only) Note: There is no type 1.
        P4_Shoe_Type    = (1 high top) (2 skates) (3 low top)
        P4_Shorts_Type  = (1 baggy) (2 tight) (3 medium)

As you can see, there aren't too many choices! Send in any great new
things that you add to this (please), and then I can keep on releasing
more and better (and *free*, doh!) updates to this!

//------------------------------------------------------------------->
//------------------------------------------------------------------->

These sizes can be almost any positive number. Experiment!

        P4_Leg_Length = 30
        P4_Neck_Height = 3
        P4_Shirt_Height = 24
        P4_Shorts_Height = 8

//------------------------------------------------------------------->
//------------------------------------------------------------------->

The rotation values are a real mess. Each object starts out at <0,0,0>,
and it gets rotated before it is moved. It's the last minute for the IRTC,
so I can't explain these - sorry!!!

One thing that's really goofy - The person is facing you, and LEFT means
the left side of your SCREEN. It seemed easier at first to arrange it
this way, now I'm not too sure!?!

        P4_Hat_Rotate = < 20, -40, 0 >
        P4_Neck_Rotate = < 0, 0, 0 >
        P4_Waist_Rotate = < -10, 0, 0 >

        P4_Left_Elbow_Rotate = < 40, -110, 0 >
        P4_Right_Elbow_Rotate = < 0, 70, 0 >

        P4_Left_Eyelid_Rotate = -40
        P4_Right_Eyelid_Rotate = -40

        P4_Left_Knee_Rotate = < -20, 0, 0 >
        P4_Right_Knee_Rotate = < -60, 20, 0 >

        P4_Left_Leg_Rotate = < 20, 0, -5 >
        P4_Right_Leg_Rotate = < 0, 0, 30 >

        P4_Left_Shoulder_Rotate = < -60, -10, 30 >
        P4_Right_Shoulder_Rotate = < -30, -20, -50 >

//------------------------------------------------------------------->
//------------------------------------------------------------------->

Always set the "holding flag" to false, unless you want your person
to carry something.

        P4_Holding_Flag = true

        P4_Holding_Object =
                cylinder { <6,0,0><6,2,0>,6 pigment{Red} }

Note: Any POV object is alright to use for the object.

//------------------------------------------------------------------->
//------------------------------------------------------------------->

Here is another optional object - a "bracelet". This also has a flag
to set on/off. This prevents duplicate bracelets! The bracelet should
be at <0,0,0>, just like a standard torus. Then the P4 system moves
it onto the person's arm!

        P4_Bracelet_Flag = true

        P4_Bracelet_Object =
                torus { 3, 1 pigment{Red} }

//------------------------------------------------------------------->
//------------------------------------------------------------------->

Despite my attempts at using "realistic inches" as units, the people
always seem to end up 8 or 9 feet tall. This variable lets you scale
the person down to a normal size. Use the P4_TEST.POV scene to see how
tall your person actually is!

        P4_Total_Scale = 80/100

//------------------------------------------------------------------->
//------------------------------------------------------------------->

This is the height to move the person up, so his/her feet are on the
floor. Sorry, but because of bendable legs, this has to be adjusted
manually (by YOU). 8-)

        P4_Y_Adjust = 32.5

//------------------------------------------------------------------->
//------------------------------------------------------------------->

Well, that's all for this time. This is version 0.00000000000000001,
and it's free, and I hope you all have fun with it!

//------------------------------------------------------------------->
//------------------------------------------------------------------->

