BRL-CAD
human.c File Reference
#include "common.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <time.h>
#include "bu/getopt.h"
#include "vmath.h"
#include "bn.h"
#include "raytrace.h"
#include "wdb.h"
#include "ged.h"
Include dependency graph for human.c:

Go to the source code of this file.

Data Structures

struct  jointInfo
 
struct  headInfo
 
struct  torsoInfo
 
struct  armInfo
 
struct  legInfo
 
struct  human_data_t
 

Macros

#define DEFAULT_HEIGHT_INCHES   68.0
 
#define DEFAULT_FILENAME   "human.g"
 
#define DEFAULT_HUMANNAME   "Body.c"
 
#define MAXLENGTH   64 /*Maxlength of things like object names, filenames */
 
#define IN2MM   25.4 /*Convert an inch measurement to millimeters */
 
#define CM2MM   10.0 /*Convert centimeters to millimeters */
 

Enumerations

enum  sexes { male, female }
 
enum  ethnicities {
  generic, white, black, hispanic,
  asian, other
}
 

Functions

HIDDEN void Auto (struct human_data_t *dude)
 
HIDDEN void RandAuto (struct human_data_t *dude)
 
HIDDEN fastf_t setDirection (fastf_t *inVect, fastf_t *resultVect, fastf_t *outMatrix, fastf_t x, fastf_t y, fastf_t z)
 
HIDDEN void boundingBox (struct rt_wdb *file, char *name, fastf_t *startPoint, fastf_t *lengthVector, fastf_t partWidth, fastf_t *rotMatrix)
 
HIDDEN void boundingRectangle (struct rt_wdb *file, char *name, fastf_t *startPoint, fastf_t *lengthVector, fastf_t partWidth, fastf_t partDepth, fastf_t *rotMatrix)
 
HIDDEN fastf_t makeHead (struct rt_wdb(*file), char *name, struct human_data_t *dude, fastf_t *direction, int showBoxes)
 
HIDDEN fastf_t makeNeck (struct rt_wdb *file, char *name, struct human_data_t *dude, fastf_t *direction, int showBoxes)
 
HIDDEN fastf_t makeUpperTorso (struct rt_wdb *file, char *name, struct human_data_t *dude, fastf_t *direction, int showBoxes)
 
HIDDEN fastf_t makeLowerTorso (struct rt_wdb *file, char *name, struct human_data_t *dude, fastf_t *direction, int showBoxes)
 
HIDDEN fastf_t makeShoulderJoint (struct rt_wdb *file, int isLeft, char *name, struct human_data_t *dude, int showBoxes)
 
HIDDEN fastf_t makeShoulder (struct rt_wdb *file, fastf_t isLeft, char *partName, struct human_data_t *dude, int showBoxes)
 
HIDDEN fastf_t makeUpperArm (struct rt_wdb *file, int isLeft, char *partName, struct human_data_t *dude, int showBoxes)
 
HIDDEN fastf_t makeElbow (struct rt_wdb *file, int isLeft, char *name, struct human_data_t *dude)
 
HIDDEN fastf_t makeLowerArm (struct rt_wdb *file, int isLeft, char *name, struct human_data_t *dude, int showBoxes)
 
HIDDEN fastf_t makeWrist (struct rt_wdb *file, int isLeft, char *name, struct human_data_t *dude)
 
HIDDEN void makeHand (struct rt_wdb *file, int isLeft, char *name, struct human_data_t *dude, int showBoxes)
 
HIDDEN fastf_t makeThighJoint (struct rt_wdb *file, int isLeft, char *name, struct human_data_t *dude)
 
HIDDEN fastf_t makeThigh (struct rt_wdb *file, int isLeft, char *name, struct human_data_t *dude, int showBoxes)
 
HIDDEN fastf_t makeKnee (struct rt_wdb *file, int isLeft, char *name, struct human_data_t *dude)
 
HIDDEN fastf_t makeCalf (struct rt_wdb *file, int isLeft, char *name, struct human_data_t *dude, int showBoxes)
 
HIDDEN fastf_t makeAnkle (struct rt_wdb *file, int isLeftr, char *name, struct human_data_t *dude)
 
HIDDEN fastf_t makeFoot (struct rt_wdb *file, int isLeft, char *name, struct human_data_t *dude, int showBoxes)
 
HIDDEN void makeProfile (struct rt_wdb(*file), char *suffix, struct human_data_t *dude, fastf_t *direction, int showBoxes)
 
HIDDEN void makeTorso (struct rt_wdb(*file), char *suffix, struct human_data_t *dude, fastf_t *direction, int showBoxes)
 
HIDDEN void makeArm (struct rt_wdb(*file), char *suffix, int isLeft, struct human_data_t *dude, int showBoxes)
 
HIDDEN void makeLeg (struct rt_wdb(*file), char *suffix, int isLeft, struct human_data_t *dude, int showBoxes)
 
HIDDEN void makeBody (struct rt_wdb(*file), char *suffix, struct human_data_t *dude, fastf_t *location, int showBoxes)
 
HIDDEN void makeArmy (struct rt_wdb(*file), struct human_data_t *dude, int number, int showBoxes)
 
HIDDEN void grabCoordinates (fastf_t *positions)
 
HIDDEN void manualPosition (struct human_data_t *dude)
 
HIDDEN void setStance (fastf_t stance, struct human_data_t *dude)
 
HIDDEN void Manual (struct human_data_t *dude)
 
HIDDEN void show_help (const char *name, const char *optstr)
 
HIDDEN void getLocation (fastf_t *location)
 
HIDDEN int read_args (int argc, const char **argv, char *topLevel, struct human_data_t *dude, fastf_t *percentile, fastf_t *location, int *stance, int *troops, int *showBoxes)
 
HIDDEN void text (struct human_data_t *dude)
 
HIDDEN void verbose (struct human_data_t *dude)
 
HIDDEN void getText (struct human_data_t *dude)
 
HIDDEN void verbIn (struct human_data_t *dude)
 
int ged_human (struct ged *gedp, int ac, const char *av[])
 

Variables

char * progname = "Human Model"
 
char filename [MAXLENGTH] =DEFAULT_FILENAME
 
char humanName [MAXLENGTH] =DEFAULT_HUMANNAME
 

Detailed Description

Generator for human models based on height, and other stuff eventually, and for the humanwizard plugin (mostly).

Here is a description of where the bounding boxes should be pivoting for each joint during articulation:

head.r and neck.r

  • The pivot point is located on the XY center of the top of the neck.r .

neck.r and upperchest.r

  • The neck.r pivots from the top XY center of the upperchest.r .

shoulder*.r

  • The shoulder*.r pivots around the X-axis in its XYZ center (half the distance in each axis to reach the center of the box).

upperchest.r and lowerchest.r

  • No movement, but the upperchest.r is specifically centered above the lowerchest.r .

shoulder*.r and lowerchest.r

  • No movement, but the shoulder*.r and upperchest.r align horizontally (along the X-axis) and are together centered over the lowerchest.r .

lowerchest.r and hips.r

  • No movement, but the lowerchest.r is aligned specifically centered above the hips.r .

hips.r and thigh*.r

  • There are two pivot points, one for the thighL.r and the other for the thighR.r . Divide the hips.r box in half in the X direction, and find the XY centers of each. These pivot points are at the base of the hips.r .

thigh*.r and calf*.r

  • The pivot point occurs at the XY center of the thigh*.r base.

calf*.r and foot*r

  • The pivot point of the foot*.r is located in XYZ center of the overlap, meaning half way across the X-axis, Y-axis, and Z-axis of all area of the foot*.r overlapped by the calf*.r.

shoulder*.r and upperarm*.r

  • The pivot point occurs at the XY center of the top of the upperarm*.r .

upperarm*.r and forearm*.r

  • The pivot point occurs at the XY center of the upperarm*.r base.

forearm*.r and hand*.r

  • The pivot point occurs at the XY center of the forearm*.r base.

Definition in file human.c.

Macro Definition Documentation

#define DEFAULT_HEIGHT_INCHES   68.0

Definition at line 96 of file human.c.

Referenced by ged_human(), and read_args().

#define DEFAULT_FILENAME   "human.g"

Definition at line 97 of file human.c.

#define DEFAULT_HUMANNAME   "Body.c"

Definition at line 98 of file human.c.

Referenced by read_args().

#define MAXLENGTH   64 /*Maxlength of things like object names, filenames */
#define IN2MM   25.4 /*Convert an inch measurement to millimeters */

Definition at line 101 of file human.c.

Referenced by Auto(), getLocation(), makeBody(), Manual(), read_args(), text(), and verbIn().

#define CM2MM   10.0 /*Convert centimeters to millimeters */

Definition at line 102 of file human.c.

Enumeration Type Documentation

enum sexes
Enumerator
male 
female 

Definition at line 196 of file human.c.

Enumerator
generic 
white 
black 
hispanic 
asian 
other 

Definition at line 197 of file human.c.

Function Documentation

HIDDEN void RandAuto ( struct human_data_t dude)

Random height generator

Definition at line 1274 of file human.c.

References human_data_t::height.

Referenced by makeArmy().

HIDDEN fastf_t setDirection ( fastf_t inVect,
fastf_t resultVect,
fastf_t outMatrix,
fastf_t  x,
fastf_t  y,
fastf_t  z 
)

This function takes in a vector, then applies a new direction to it using x, y, and z degrees, and exports it to resultVect, and returns the distance of the vector.

Definition at line 232 of file human.c.

References bn_mat_angles().

Referenced by makeCalf(), makeFoot(), makeHand(), makeHead(), makeLowerArm(), makeLowerTorso(), makeNeck(), makeShoulderJoint(), makeThigh(), makeUpperArm(), and makeUpperTorso().

Here is the call graph for this function:

HIDDEN void boundingBox ( struct rt_wdb file,
char *  name,
fastf_t startPoint,
fastf_t lengthVector,
fastf_t  partWidth,
fastf_t rotMatrix 
)

Create a bounding box around the individual part, this one has only 1 value for depth and width. Currently is a big mess, as the boxes don't want to rotate in the correct manner, and insist upon rotating around an incorrect vertex.

Definition at line 268 of file human.c.

References bu_strlcat, bu_strlcpy, MAXLENGTH, mk_arb8(), mk_trc_h(), VSET, X, Y, and Z.

Referenced by makeCalf(), makeFoot(), makeHead(), makeLowerArm(), makeNeck(), makeShoulderJoint(), makeThigh(), and makeUpperArm().

Here is the call graph for this function:

HIDDEN void boundingRectangle ( struct rt_wdb file,
char *  name,
fastf_t startPoint,
fastf_t lengthVector,
fastf_t  partWidth,
fastf_t  partDepth,
fastf_t rotMatrix 
)

Create a bounding rectangle around the individual part, and this one has 2 separate values for depth and width

Definition at line 339 of file human.c.

References bu_strlcat, bu_strlcpy, MAXLENGTH, mk_arb8(), VSET, X, Y, and Z.

Referenced by makeHand(), makeLowerTorso(), and makeUpperTorso().

Here is the call graph for this function:

HIDDEN fastf_t makeHead ( struct rt_wdb file,
char *  name,
struct human_data_t dude,
fastf_t direction,
int  showBoxes 
)

Definition at line 380 of file human.c.

References boundingBox(), human_data_t::head, jointInfo::headJoint, headInfo::headSize, headInfo::headVector, human_data_t::joints, mk_sph(), setDirection(), VSET, X, Y, and Z.

Referenced by makeProfile().

Here is the call graph for this function:

HIDDEN fastf_t makeNeck ( struct rt_wdb file,
char *  name,
struct human_data_t dude,
fastf_t direction,
int  showBoxes 
)

Definition at line 401 of file human.c.

References boundingBox(), human_data_t::head, jointInfo::headJoint, human_data_t::joints, mk_rcc(), jointInfo::neckJoint, headInfo::neckLength, headInfo::neckVector, headInfo::neckWidth, setDirection(), VSET, X, Y, and Z.

Referenced by makeProfile().

Here is the call graph for this function:

HIDDEN fastf_t makeUpperTorso ( struct rt_wdb file,
char *  name,
struct human_data_t dude,
fastf_t direction,
int  showBoxes 
)
HIDDEN fastf_t makeLowerTorso ( struct rt_wdb file,
char *  name,
struct human_data_t dude,
fastf_t direction,
int  showBoxes 
)

Definition at line 452 of file human.c.

References torsoInfo::abDepth, jointInfo::abdomenJoint, torsoInfo::abWidth, boundingRectangle(), human_data_t::joints, jointInfo::leftThighJoint, torsoInfo::lowTorsoLength, torsoInfo::lowTorsoVector, mk_tgc(), torsoInfo::pelvisDepth, jointInfo::pelvisJoint, torsoInfo::pelvisWidth, jointInfo::rightThighJoint, setDirection(), human_data_t::torso, VSET, X, Y, and Z.

Referenced by makeTorso().

Here is the call graph for this function:

HIDDEN fastf_t makeShoulderJoint ( struct rt_wdb file,
int  isLeft,
char *  name,
struct human_data_t dude,
int  showBoxes 
)

Definition at line 484 of file human.c.

References human_data_t::arms, boundingBox(), human_data_t::joints, armInfo::lArmDirection, jointInfo::leftShoulderJoint, mk_sph(), armInfo::rArmDirection, jointInfo::rightShoulderJoint, setDirection(), torsoInfo::shoulderWidth, human_data_t::torso, armInfo::upperArmWidth, VSET, X, Y, and Z.

Referenced by makeArm().

Here is the call graph for this function:

HIDDEN fastf_t makeShoulder ( struct rt_wdb file,
fastf_t  isLeft,
char *  partName,
struct human_data_t dude,
int  showBoxes 
)

Definition at line 515 of file human.c.

Referenced by makeTorso().

HIDDEN fastf_t makeUpperArm ( struct rt_wdb file,
int  isLeft,
char *  partName,
struct human_data_t dude,
int  showBoxes 
)

Definition at line 522 of file human.c.

References human_data_t::arms, armInfo::armVector, boundingBox(), jointInfo::elbowJoint, armInfo::elbowWidth, human_data_t::joints, armInfo::lArmDirection, jointInfo::leftShoulderJoint, mk_trc_h(), armInfo::rArmDirection, jointInfo::rightShoulderJoint, setDirection(), armInfo::upperArmLength, armInfo::upperArmWidth, VSET, X, Y, and Z.

Referenced by makeArm().

Here is the call graph for this function:

HIDDEN fastf_t makeElbow ( struct rt_wdb file,
int  isLeft,
char *  name,
struct human_data_t dude 
)

Definition at line 559 of file human.c.

References human_data_t::arms, jointInfo::elbowJoint, armInfo::elbowWidth, human_data_t::joints, mk_ell(), and VSET.

Referenced by makeArm().

Here is the call graph for this function:

HIDDEN fastf_t makeLowerArm ( struct rt_wdb file,
int  isLeft,
char *  name,
struct human_data_t dude,
int  showBoxes 
)

Definition at line 575 of file human.c.

References human_data_t::arms, armInfo::armVector, boundingBox(), jointInfo::elbowJoint, armInfo::elbowWidth, human_data_t::joints, armInfo::lElbowDirection, armInfo::lowerArmLength, mk_trc_h(), armInfo::rElbowDirection, setDirection(), VSET, jointInfo::wristJoint, armInfo::wristWidth, X, Y, and Z.

Referenced by makeArm().

Here is the call graph for this function:

HIDDEN fastf_t makeWrist ( struct rt_wdb file,
int  isLeft,
char *  name,
struct human_data_t dude 
)

Definition at line 613 of file human.c.

References human_data_t::arms, human_data_t::joints, mk_sph(), jointInfo::wristJoint, and armInfo::wristWidth.

Referenced by makeArm().

Here is the call graph for this function:

HIDDEN void makeHand ( struct rt_wdb file,
int  isLeft,
char *  name,
struct human_data_t dude,
int  showBoxes 
)

Definition at line 621 of file human.c.

References human_data_t::arms, armInfo::armVector, boundingRectangle(), armInfo::handLength, armInfo::handWidth, human_data_t::joints, armInfo::lWristDirection, mk_sph(), armInfo::rWristDirection, setDirection(), VSET, jointInfo::wristJoint, armInfo::wristWidth, X, Y, and Z.

Referenced by makeArm().

Here is the call graph for this function:

HIDDEN fastf_t makeThighJoint ( struct rt_wdb file,
int  isLeft,
char *  name,
struct human_data_t dude 
)

Definition at line 641 of file human.c.

References human_data_t::joints, jointInfo::leftThighJoint, human_data_t::legs, mk_sph(), jointInfo::rightThighJoint, and legInfo::thighWidth.

Referenced by makeLeg().

Here is the call graph for this function:

HIDDEN fastf_t makeThigh ( struct rt_wdb file,
int  isLeft,
char *  name,
struct human_data_t dude,
int  showBoxes 
)

Definition at line 653 of file human.c.

References boundingBox(), human_data_t::joints, jointInfo::kneeJoint, legInfo::kneeWidth, jointInfo::leftThighJoint, human_data_t::legs, legInfo::lLegDirection, mk_trc_h(), jointInfo::rightThighJoint, legInfo::rLegDirection, setDirection(), legInfo::thighLength, legInfo::thighVector, legInfo::thighWidth, VSET, X, Y, and Z.

Referenced by makeLeg().

Here is the call graph for this function:

HIDDEN fastf_t makeKnee ( struct rt_wdb file,
int  isLeft,
char *  name,
struct human_data_t dude 
)

Definition at line 679 of file human.c.

References human_data_t::joints, jointInfo::kneeJoint, legInfo::kneeWidth, human_data_t::legs, and mk_sph().

Referenced by makeLeg().

Here is the call graph for this function:

HIDDEN fastf_t makeCalf ( struct rt_wdb file,
int  isLeft,
char *  name,
struct human_data_t dude,
int  showBoxes 
)

Definition at line 687 of file human.c.

References jointInfo::ankleJoint, legInfo::ankleWidth, boundingBox(), legInfo::calfLength, legInfo::calfVector, human_data_t::joints, jointInfo::kneeJoint, legInfo::kneeWidth, human_data_t::legs, legInfo::lKneeDirection, mk_trc_h(), legInfo::rKneeDirection, setDirection(), VSET, X, Y, and Z.

Referenced by makeLeg().

Here is the call graph for this function:

HIDDEN fastf_t makeAnkle ( struct rt_wdb file,
int  isLeftr,
char *  name,
struct human_data_t dude 
)

Definition at line 718 of file human.c.

References jointInfo::ankleJoint, legInfo::ankleWidth, human_data_t::joints, human_data_t::legs, and mk_sph().

Referenced by makeLeg().

Here is the call graph for this function:

HIDDEN fastf_t makeFoot ( struct rt_wdb file,
int  isLeft,
char *  name,
struct human_data_t dude,
int  showBoxes 
)

Definition at line 726 of file human.c.

References jointInfo::ankleJoint, legInfo::ankleWidth, boundingBox(), legInfo::footLength, legInfo::footVector, human_data_t::joints, human_data_t::legs, legInfo::lFootDirection, mk_particle(), legInfo::rFootDirection, setDirection(), legInfo::toeWidth, VSET, X, Y, and Z.

Referenced by makeLeg().

Here is the call graph for this function:

HIDDEN void makeProfile ( struct rt_wdb file,
char *  suffix,
struct human_data_t dude,
fastf_t direction,
int  showBoxes 
)

Make profile makes the head and neck of the body

Definition at line 754 of file human.c.

References bu_strlcat, human_data_t::head, headInfo::headSize, makeHead(), makeNeck(), MAXLENGTH, and headInfo::neckLength.

Referenced by makeBody().

Here is the call graph for this function:

HIDDEN void makeTorso ( struct rt_wdb file,
char *  suffix,
struct human_data_t dude,
fastf_t direction,
int  showBoxes 
)

Definition at line 770 of file human.c.

References bu_strlcat, makeLowerTorso(), makeShoulder(), makeUpperTorso(), and MAXLENGTH.

Referenced by makeBody().

Here is the call graph for this function:

HIDDEN void makeArm ( struct rt_wdb file,
char *  suffix,
int  isLeft,
struct human_data_t dude,
int  showBoxes 
)

Make the 3 components of the arm:the upper arm, the lower arm, and the hand.

Definition at line 795 of file human.c.

References bu_strlcat, bu_strlcpy, makeElbow(), makeHand(), makeLowerArm(), makeShoulderJoint(), makeUpperArm(), makeWrist(), and MAXLENGTH.

Referenced by makeBody().

Here is the call graph for this function:

HIDDEN void makeLeg ( struct rt_wdb file,
char *  suffix,
int  isLeft,
struct human_data_t dude,
int  showBoxes 
)

Create the leg to be length 'legLength' by making a thigh, calf, and foot to meet requirements.

Definition at line 841 of file human.c.

References bu_strlcat, bu_strlcpy, makeAnkle(), makeCalf(), makeFoot(), makeKnee(), makeThigh(), makeThighJoint(), and MAXLENGTH.

Referenced by makeBody().

Here is the call graph for this function:

HIDDEN void makeBody ( struct rt_wdb file,
char *  suffix,
struct human_data_t dude,
fastf_t location,
int  showBoxes 
)

Make the head, shoulders knees and toes, so to speak. Head, neck, torso, arms, hands, legs, feet. And dude, a very technical term, is the human_data in a shorter, more readable name

Head Parts

Torso Parts

Arm Parts

Leg Parts

Definition at line 887 of file human.c.

References bu_log(), human_data_t::head, jointInfo::headJoint, headInfo::headSize, human_data_t::height, IN2MM, human_data_t::joints, makeArm(), makeLeg(), makeProfile(), makeTorso(), VSET, X, Y, and Z.

Referenced by ged_human(), and makeArmy().

Here is the call graph for this function:

HIDDEN void makeArmy ( struct rt_wdb file,
struct human_data_t dude,
int  number,
int  showBoxes 
)

MakeArmy makes a square of persons n by n large, where n is the number of persons entered using -N if N is large (>= 20) Parts start disappearing, oddly enough.

Definition at line 932 of file human.c.

References human_data_t::arms, Auto(), bu_strlcpy, makeBody(), MAXLENGTH, RandAuto(), torsoInfo::shoulderWidth, human_data_t::torso, armInfo::upperArmWidth, VSET, X, and Y.

Referenced by ged_human().

Here is the call graph for this function:

HIDDEN void grabCoordinates ( fastf_t positions)

Definition at line 960 of file human.c.

References bu_log(), X, Y, and Z.

Referenced by manualPosition().

Here is the call graph for this function:

HIDDEN void manualPosition ( struct human_data_t dude)

User manual poses the human model by inputting absolute angles for limb positions.

Definition at line 993 of file human.c.

References human_data_t::arms, grabCoordinates(), armInfo::lArmDirection, human_data_t::legs, armInfo::lElbowDirection, legInfo::lFootDirection, legInfo::lKneeDirection, legInfo::lLegDirection, armInfo::lWristDirection, armInfo::rArmDirection, armInfo::rElbowDirection, legInfo::rFootDirection, legInfo::rKneeDirection, legInfo::rLegDirection, and armInfo::rWristDirection.

Referenced by setStance().

Here is the call graph for this function:

HIDDEN void setStance ( fastf_t  stance,
struct human_data_t dude 
)

The stances are the way the body is positioned via adjusting limbs and whatnot. THEY ARE: 0: Standing 1: Sitting 2: Driving 3: Arms Out 4: The Letterman 5: The Captain #: and more as needed 999: Custom (done interactively)

Definition at line 1048 of file human.c.

References human_data_t::arms, bu_log(), armInfo::lArmDirection, human_data_t::legs, armInfo::lElbowDirection, legInfo::lFootDirection, legInfo::lKneeDirection, legInfo::lLegDirection, armInfo::lWristDirection, manualPosition(), armInfo::rArmDirection, armInfo::rElbowDirection, legInfo::rFootDirection, legInfo::rKneeDirection, legInfo::rLegDirection, armInfo::rWristDirection, and VSET.

Referenced by ged_human().

Here is the call graph for this function:

HIDDEN void show_help ( const char *  name,
const char *  optstr 
)

Help message printed when -h/-? option is supplied

Definition at line 1514 of file human.c.

References bu_log(), bu_vls_addr(), bu_vls_free(), BU_VLS_INIT_ZERO, and bu_vls_strncat().

Referenced by read_args().

Here is the call graph for this function:

HIDDEN void getLocation ( fastf_t location)

User inputs the XYZ coordinates of the center point of the human model.

Definition at line 1556 of file human.c.

References bu_log(), IN2MM, and VSET.

Referenced by read_args().

Here is the call graph for this function:

HIDDEN void text ( struct human_data_t dude)

The text function takes the dimensions of each region on the body, and finds the measurements for each bounding box to be output to a text file. All dimensions are in mm, because it seems everyone just /loves/ millimeters for analytical purposes. Hard Coded to dump out everything related to boundingboxes.

Definition at line 1882 of file human.c.

References torsoInfo::abDepth, legInfo::ankleWidth, human_data_t::arms, bu_log(), legInfo::calfLength, armInfo::elbowWidth, legInfo::footLength, armInfo::handLength, armInfo::handWidth, human_data_t::head, headInfo::headSize, human_data_t::height, IN2MM, legInfo::kneeWidth, human_data_t::legs, armInfo::lowerArmLength, torsoInfo::lowTorsoLength, headInfo::neckLength, headInfo::neckWidth, torsoInfo::pelvisDepth, torsoInfo::pelvisWidth, torsoInfo::shoulderDepth, torsoInfo::shoulderWidth, legInfo::thighLength, legInfo::thighWidth, legInfo::toeWidth, torsoInfo::topTorsoLength, human_data_t::torso, armInfo::upperArmLength, armInfo::upperArmWidth, and armInfo::wristWidth.

Referenced by ged_human().

Here is the call graph for this function:

HIDDEN void getText ( struct human_data_t dude)

This function reads in a file with bounding box information and inputs into the program, instead of manual mode or auto mode.

Definition at line 2055 of file human.c.

References bu_fgets(), bu_log(), and input.

Referenced by ged_human().

Here is the call graph for this function:

int ged_human ( struct ged gedp,
int  ac,
const char *  av[] 
)

ged_human is the function which is called from an outside function in the /shapes directory. It's essentially a main function without main.

Make the Regions (.r's) of the body

Definition at line 2186 of file human.c.

References BU_LIST_INIT, bu_log(), bu_strlcat, bu_strlcpy, bu_vls_addr(), bu_vls_free(), BU_VLS_INIT_ZERO, DEFAULT_HEIGHT_INCHES, GED_CHECK_DATABASE_OPEN, GED_CHECK_EXISTS, GED_CHECK_READ_ONLY, GED_ERROR, GED_OK, ged::ged_wdbp, getText(), human_data_t::height, humanName, wmember::l, LOOKUP_QUIET, makeArmy(), makeBody(), MAXLENGTH, memset(), mk_addmember(), mk_id_units(), mk_lcomb, read_args(), OSL::Strings::rgb, setStance(), text(), human_data_t::textread, human_data_t::textwrite, time(), verbIn(), verbose(), human_data_t::verbread, human_data_t::verbwrite, VSET, WMOP_SUBTRACT, WMOP_UNION, X, Y, and Z.

Here is the call graph for this function:

Variable Documentation

char* progname = "Human Model"

Definition at line 104 of file human.c.

char filename[MAXLENGTH] =DEFAULT_FILENAME

Definition at line 105 of file human.c.

Referenced by ext_setup(), fb_common_file_size(), and GetFileNameFromHandle().

char humanName[MAXLENGTH] =DEFAULT_HUMANNAME

Definition at line 106 of file human.c.

Referenced by ged_human(), and read_args().