report documentation page omb no. 074- · pdf filereport documentation page ... tailoring...
TRANSCRIPT
REPORT DOCUMENTATION PAGE Form Approved
OMB No. 074-0188 Public reporting burden for this collection of information Is estimated to average 1 hour per response, including the time for reviewing Instructions, searching existing data sources, gathering and maintaining the data needed, and completing and reviewing this collection of information. Send comments regarding this burden estimate or any other aspect of this collection of Information, including suggestions for reducing this burden to Washington Headquarters Services, Directorate for Information Operations and Reports, 1215 Jefferson Davis Highway, Suite 1204, Arlington, VA 22202-4302, and to the Office of Management and Budget, Paperwork Reduction Project (0704-0188), Washington, DC 20503
1. AGENCY USE ONLY (Leave blank) 2. REPORT DATE 18 Feb 1998
3. REPORT TYPE AND DATES COVERED Final Report 18 Sep 1996 - 18 Sep 1997
4. TITLE AND SUBTITLE Extraction of garment manufacturing data from 3D whole body scans
6.AUTHOR(S) Michael L. McLean Sr. Benjamin Newsom
5. FUNDING NUMBERS
7. PERFORMING ORGANIZATION NAME(S) AND ADDRESS(ES)
Haas Tailoring Company 3425 Sinclair Lane Baltimore, MD 21213
8. PERFORMING ORGANIZATION REPORT NUMBER
9. SPONSORING / MONITORING AGENCY NAME(S) AND ADDRESS(ES)
Defense Logistics Agency MMPRT Room 3135 8725 John J. Kingman Rd #2533 Fort Belvoir, VA 22060-6221
11. SUPPLEMENTARY NOTES
10. SPONSORING / MONITORING AGENCY REPORT NUMBER
w&m m 12a. DISTRIBUTION / AVAILABILITY STATEMENT A - Approved for public release; distribution unlimited.
Ku. ~._- »E
13. ABSTRACT (Maximum 200 Words) The project is to develop a computer-based, interactive measurement and posture data acquisition system. The system will be
implemented as a Microsoft-Windows(95/NT) computer program which accepts 3D whole body scan data and produces manufacturing-
oriented measurement and posture specifications. For the men's uniform there are approximately 24 different measurements or posture
specifications which may be required. For the women's uniform there are approximately 30 different measurements or posture
specifications to handle. As measurements and posture specifiers are derived, they are "validated" against statistical norms and ranges.
The data for these statistical norms on human build resides in the Haas Tailoring anthropomorphic data base of over 8,000 military
personnel and over 75,000 members of the general population. These validated measurements and posture specifications will be
automatically submitted to a pattern design system to produce a special measure pattern. Systems under considerations are the Haas
Tailoring Expert System, the Gerber Garment Made-to-Measure System, and/or other garment CAD systems.
14. SUBJECT TERMS tailoring; made-to-measure; special measurement; gerber; clothing; 3D whole body data; measurement extraction
15. NUMBER OF PAGES 160
16. PRICE CODE
17. SECURITY CLASSIFICATION OF REPORT
UNCLASSIFIED
18. SECURITY CLASSIFICATION OF THIS PAGE
UNCLASSIFIED
19. SECURITY CLASSIFICATION OF ABSTRACT
UNCLASSIFIED
20. LIMITATION OF ABSTRACT
UL NSN 7540-01-280-5500 Standard Form 298 (Rev. 2-89)
Prescribed by ANSI Std. Z39-18
DUO QUALITY INSPECTED 1
DLA-ARN SHORT-TERM PROJECT REPORT
Extraction of Garment Manufacturing Data
From 3D Whole Body Scans
DDFG-T2-P5
Contract Number SPO 10095-D-1044
Contractor Haas Tailoring Company
Delivery Order Number 0004
Delivery Order Title Extraction of Garment Manufacturing Data From
3D Whole Body Scans
CDRL# A005
CDRL Title Technical Report, Final Report
Reporting Period September 18,1996 - September 17,1997
Report Date February 18,1998
Name Of PI Michael McLean
e-mail Mike.mcleanO.internetmci.com
Phone 410/732-3800
Fax 410/732-9310
Address 3425 Sinclair Lane, Baltimore, MD 21213
Final Technical Report
Date: February 1998
Extraction of Garment Manufacturing Data
From 3D Whole Body Scans
Sponsor: Defense Logistics Agency
DDFG T2-P5
Principal Investigator: Michael McLean
Principal Researcher: Benjamin Newsom
Haas Tailoring Company
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 1
TABLE of CONTENTS
1 Executive Summary 4
2 Introduction 5
2.1 Purpose and Scope 5
2.2 Apparei Manufacturer's Objectives 5
2.3 Project Objectives 6
2.4 Project Results 7
3 Operating Environment 7
4 Measurement/Manufacturing Data Extraction Approach 8
4.1 3D Model 8
4.2 Extraction Algorithms 8
4.3 Extraction Algorithm Validation and Verification Approach 9
4.4 Software Development Approach 9
4.5 Development Environment 10
4.6 Scan Data Exchange 12
4.7 Software Architecture 12
4.8 User Interface Approach 13
5 Measurement/Manufacturing Data Extraction Capabilities 13
5.1 Current General Measurements 15
5.2 Current Coat Measurements 15
5.3 Current Pant Measurements 16
5.4 3D Model Classes and Methods 16
5.5 Extraction Classes and Methods 18
5.6 Measurement/Shape Validation Classes and Methods 19
5.7 Database Approach 19
6 Glossary 20
7 Results With Trial Subjects 20
8 Measurement/Posture Description Files 24
9 Sample Diagnostic Pictures of Subjects 34
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 2
10 Measurement Extraction Algorithms 137
10.1 General Human Measurements 137
10.2Coat Specific Algorithms 154
10.3Pant Specific Algorithms 158
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 3
1 Executive Summary
From September 1996 to September 1997, Haas Tailoring Company conducted a Short
Term Research Project for the Defense Logistic Agency's Apparel Research Network
entitled Extraction of Garment Manufacturing Data From 3D Whole Body Scans. The
focus of this research initiative was to create a software system, which automatically
extracts apparel-related measurements, and body shape descriptions from a whole
body scan. The fundamental mission of this effort is to provide consistent and accurate
apparel-related body measurements and posture data in a timely manner to Recruit
Induction Centers for the issue of military dress uniforms. Taking the approach of
combining a whole body scanner with analysis software in the early stages of a recruit's
induction process will:
• Reduce manufacturer cycle time, thereby reducing the delivery time;
• Improve the overall quality of manufactured items;
• Improve utilization of uniform material by reducing scrap/rework requirements;
and
• Reduce the manufacturing costs of special measurement items.
The whole body scans of military subjects were performed at the U.S. Army Personnel
Center in Natick, Massachusetts using a Cyberware whole body scanner. Haas
Tailoring Company developed object-oriented computer software which builds three-
dimensional (3D) mathematical models and provides various methods for analyzing and
manipulating these mathematical models. In addition, Haas developed a hierarchy of
software classes with methods and properties that define the set of measurements and
posture descriptions necessary to manufacturer a military dress uniform. Methods in
these classes automatically extract the requisite manufacturing data based upon a
combination of a tailor's traditional view of a subject and recent anthropometric analyses
perform on U. S. Army personnel. Haas Tailoring Company is continuing to expand,
refine, and incorporate new measurement and posture information extraction algorithms
to address the wide variety of potential military subjects.
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 4
2 Introduction
2.1 Purpose and Scope
The DDFG-T2-P5 Short Term Project conducted at Haas Tailoring Company created a
manufacturer-oriented data acquisition system. This system acquires and validates the
measurements and posture determinations required defining a given uniform order.
The data acquisition system includes converting 3-D Scan Data from the Cyberware 3-
D full body scanner into usable apparel body measurements and posture
determinations that are compatible with the existing military clothing sizing systems.
This system could be part of a point of sale system that resides in Recruit Induction
Centers (RIC). The acquisition of accurate measurement and posture specifications is
the first step of the apparel manufacturing process and is crucial to all downstream
manufacturing process steps. A mistake or misunderstanding can be corrected or
clarified at this stage for a minimal cost. If allowed to propagate to later manufacturing
steps, the alteration and rework costs are substantial. The core of this project is a
software program which utilizes a 3D whole body scanner to acquire measurement and
posture data, analysis algorithms to determine manufacturing-oriented parameters, and
becomes the front-end to an automated special measures design system for dress
uniform jackets, pants, and skirts.
2.2 Apparel Manufacturer's Objectives
The most significant result of this project is consistently accurate measurements and
posture descriptions. These form the basis of all future work to be performed by
operations "downstream" in the manufacturing process. With this project we are moving
quality and consistency checks into the early stages of the manufacturing process.
Consistent and accurate measurement and posture data:
• Reduce manufacturer cycle time, thereby reducing the delivery time;
• Improve the overall quality of manufactured items;
• Improve utilization of uniform material by reducing scrap/rework requirements;
and
• Reduce the manufacturing costs of special measurement items.
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 5
2.3 Project Objectives
2.3.1 Acquire Whole Body 3D scan data sets.
Whole body scans will be taken of "baseline" individuals as well as a random selection
of military personnel.
2.3.2 Identify location of manufacturing-oriented points of measurement and posture
specifiers within scan data.
Adapt existing and create new "shape fitting" software to recognize points of
measurement such as "chest", "waist", and "seat", and posture specifiers such as
"shoulder slope", "prominent seat", "prominent calves", and "bow-leg/knock-knee".
2.3.3 Extract garment-specific, manufacturing-oriented measurement and posture
specifications.
Develop software algorithms for extracting garment-specific (coat, pant, and skirt)
measurements and posture specifiers. Modify existing software to perform a
measurement ratio analysis and determine a confidence index on the combination of
measurements and posture specifiers.
2.3.4 Validate extracted measurement and posture specifications.
Automatic measurement and posture calculations will be verified against tape
measurements of "baseline" individuals. In addition, the random candidate
measurements will be statistically compared to the existing Haas Tailoring
anthropomorphic database of over 8,000 military personnel and over 75,000 members
of the general population.
2.3.5 Integrate automatically acquired measurement and posture specifications with
pattern design system.
The measurement and posture specifications gleaned from the 3D whole body scans
will be formatted and submitted to a pattern design system to automatically select and, if
required, alter a pattern so that it conforms to the existing military clothing sizing
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 6
system. Systems under considerations are the Haas Tailoring Expert System, the
Gerber Garment Made-to-Measure System, and/or other garment CAD systems.
2.4 Project Results
The project began on September 18, 1996 as a 12-month project with an approximate
allocation of one man-year of labor. The average weekly distribution of labor was as
follows:
Project Management 0.5 day/week
Tailoring Expertise 1.0 day/week
Software Engineering 4.0 days/week
The software being created was named AMS as an acronym for Apparel Measurement
System. As of the end of June 1997, the AMS software could build a 3D mathematical
model of a whole body scan taken by a Cyberware Whole Body Scanner and stored in
the Stanford PLY format. From this 3D model, AMS could automatically extract a
limited set of measurements and body shape information necessary for apparel design
and manufacturer.
As of September 17, 1997, the end of year one, the AMS system could automatically
extract all of the measurements specified in the "Sample Measurement/Posture
Description File" section of this report. This measurement/posture description file
contains the information necessary to be submitted to an apparel pattern design system
and is formatted in the de facto standard of a Microsoft Windows ".ini" file. An ini file is
easily parsed by any Window-based software package. It should be noted that all of the
apparel pattern design systems under consideration run under/on the Microsoft
Windows operating system.
3 Operating Environment
The minimum configuration required for AMS is:
• Windows 95 on a 100Mhz Pentium, 32MB RAM, 2MB Video Card, 800x600
Monitor and access to the scan data.
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 7
Access to the scan data can be achieved via a CD-ROM drive, networked machine, or
local hard disk with enough capacity to hold the scans [Note: the operating system, etc.
will probably take up 400MB of disk space]). At current market prices, the minimum
configuration costs less than $1,000.
At the current stage of implementation, the interactive version of AMS requires that a
computer operator must be familiar enough with Windows 95 to select and run the
application. From within the application, the operator must understand how to select a
menu option of opening a file (the PLY representation of a scan).
The background or batch version of AMS requires no user interaction and can be
executed by any other Windows-based program with the scan file name being given as
a command-line argument.
4 Measurement/Manufacturing Data Extraction Approach
4.1 3D Model
The AMS software creates a three dimensional mathematical model from the points and
faces identified in the Stanford PLY file representation of a Cyberware scanner's
scanned "cloud of points". The model is an ordered, connected, but not necessarily
closed set of points, planes, faces and edges. The model includes methods for taking
"slices" through the model from any and all perspectives. These slices can be further
analyzed, converted into connected hulls, converted to convex hulls, and used as
bounding slices for additional, regional analysis of the scan.
4.2 Extraction Algorithms
There are certain fundamental regions of the body such as neck, shoulders, chest,
wrists, waist, seat, thighs, knees and ankles that make up an overall "fingerprint"
(anthropomorphic specification set) for each individual. These regions and their inter-
relationships determine base measurements, measurement ratios, and posture
indicators which, when combined, specify the size and shape of special-measure Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 8
patterns. Software algorithms were developed to identify the specific "points of
measurement" within each of these fundamental body regions.
The intelligent set of three-dimensional points, planes, faces and edges in our 3D model
provide the fundamental tools necessary to extract the areas of interest to a special
measure pattern designer and manufacturing operation. These areas of interest are the
basis for determining posture specifiers such as a prominent seat, a sloping shoulder,
an erect versus natural spine, and normal versus knock-knee versus bowed legs.
In addition to basic size information (chest, waist, seat, sleeve length, inseam, outseam,
etc.) the points of interest determine the transition shape or "drop" ratio between the
regions of the body. These drop ratios are crucial in determining the appropriate fit
within the existing military clothing sizing system. If alterations are required, these
ratios are the basis for transforming a traditional military uniform pattern into a well
fitting, "no adjustment necessary" garment. The software algorithms developed perform
this ratio analysis to mimic the methods used by traditional pattern designers to create
the original patterns. In addition, this analysis compares the results to known "rules of
thumb" to determine the severity of deviation from standard patterns.
4.3 Extraction Algorithm Validation and Verification Approach
Currently, all of the scan files (in PLY format) from the Natick scanning sessions are
analyzed by automatically extracting a subset of measurements. We store these
extracted measurements in a Microsoft ".ini" file format for each scanned subject. We
compare the extracted values with prior measured values for each subject to determine
the accuracy. With each "run", we are refining our extraction algorithms to more closely
match the measured values.
4.4 Software Development Approach
The AMS software was written using standard object-oriented software development
techniques and utilized all aspects of the C++ language and standard C++ template
libraries. The 3D model as well as the human and garment measurement classes are
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 9
built upon a hierarchical class structure described in a later section of this report. The
primary development environment was Microsoft Visual C++ V5.0 within the Visual
Studio. The software development objectives were as follows:
• Automatically extract from a 3D whole body scan the measurements and
manufacturing information required by an apparel manufacturer to specify and
create a man's dress uniform.
• Develop the application for commercial/production deployment on readily available,
low-cost computing systems.
• Develop the application in a manner that requires little training or knowledge of
human anatomy or tailoring by the computer operator.
• Develop the application in a manner that it can easily integrate with other
applications and computing environments in place at RICs, DPSC, and apparel
manufacturers.
• Where applicable, use the state-of-the-art in software development techniques and
technology such as object-oriented modeling and implementation.
• Develop the application using commercially available and supported software
development tools (language, compilers, editors, GUI developers, etc.).
4.5 Development Environment
Operating Systems:
Microsoft Windows 95
Microsoft Windows NT
Sun Microsystems - SunOS
Languages/Tools:
C++ (Microsoft's Visual Studio, and GNU C++)
C++ Standard Template Library
Microsoft Access
Microsoft Visual Basic
Visual Slick Edit
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 10
Borland Brief
TGS Openlnventor
Microsoft OpenGL
Microsoft Windows API
Yourdin 00 modeling methods
Booch 00 analysis methods
Hardware:
a) 200 Mhz Pentium Pro, 128MB RAM, 4MB 3D Video Card, 1280x1024
monitor, 3GB HD, Ethernet LAN, 20X CD-ROM reader, ZIP drive.
b) 166 Mhz Pentium, 32MB RAM, 4MB Video Card, 1024x768 monitor, 2GB HD,
Ethernet LAN, 12X CD-ROM reader, ZIP drive.
c) 100 Mhz Pentium, 64MB RAM, 4MB 3D Video Card, 1280x1024 monitor,
5GB HDs, Ethernet LAN, 16X CD-ROM reader, 4X CD-ROM writer, 1GB JAZ
Drive, ZIP drive.
d) 50 Mhz-486, 8MB RAM, 2MB Video Card, 1024x768 monitor, 1GB HDs,
Ethernet LAN, 2X CD-ROM reader, 90MB Iomega Bernoulli drive
e) Sun Microsystems SPARC 1+, 8MB RAM, 1152x864 monitor, 600MB HDs,
Ethernet LAN, 150MB tape drive
Networking Tools/Utilities:
Local Area Network
TCP/IP, SMB, IPX, NetBUI protocols
NFS, FTP, RFTP file transfer/sharing tools
Internet
FTP, HTTP, POP3, SMTP, TCP/IP
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 11
4.6 Scan Data Exchange
Scan file exchange from Natick was accomplished via the use of 150MB quarter-inch
cartridge (QIC) tapes formatted on an SGI Iris at Natick. The SGI stores data on tape in
a reverse byte order from everyone else so, we had to read each tape onto a hard disk
on our Sun workstation as a tar image swapping each byte-pair. Once on disk, we un-
tar'd the tape image across our local area network onto a 1GB hard disk partition on the
primary Windows/Intel-based development machine. Eventually, we wrote these files to
a ISO 9660 standard CD-ROM.
4.7 Software Architecture
The AMS software was designed around five major components: 1) user interface; 2)
3D model data structure library (C++ classes and methods); 3) data extraction and
analysis library (C++ classes and methods); 4) measurement and shape set validation
library (C++ classes and methods); and 5) underlying relational database. Two versions
of AMS were produced. The interactive version utilizes a traditional graphics user
interface (GUI). The background or batch version of AMS uses no Microsoft specific
libraries, routines or dependencies. It can be called (executed, spawned, forked, etc.)
by any other program with the name of the scan file as a command line or calling
argument.
The user interface and the database are unique and specific to the Microsoft Windows
(95/NT) operating system and could not be easily ported to another operating system.
The other three components (libraries) are written using ANSI standard C++ with no
Microsoft-specific extensions (API calls). The fundamental C++ class libraries for types
and data structures are from the ANSI Standard Template Library. These libraries
could be easily ported to other operating systems (specifically, Unix derivatives such as
Solaris or IRIX) that support the ANSI standard C++ language and template library.
The three libraries are currently implemented as static libraries "compiled into" the one
executable. In future releases, it would be more efficient from a long-term development
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 12
and maintenance perspective to make these into individual dlls (dynamic linked
libraries). Such dlls could then be utilized (callable) from programs other than AMS.
4.8 User Interface Approach
The user interface to AMS relies heavily upon and makes extensive use of the common
operating systems controls provided by Windows 95/NT. It is tightly integrated into the
windowing system and the Microsoft Foundation Class (MFC) structure provided by
Visual C++. This allows for fairly rapid Ul development, but restricts the software's use
to the Windows operating system.
The fundamental approach is based upon the "wizard" control and tools that come with
MFC. On a given wizard pane, the user selects the task they want to perform from a set
of radio buttons then selects the "next" button that sends them to the next logical screen
based upon their selection.
Because we are focusing on creating a background measurement extraction engine, the
user interface is not that important. Instead, it only has to be rudimentary and functional
enough to test our algorithms in a research context. Once the algorithms in the model,
extraction and verification libraries are shown to be correct (or correct enough), a
different user interface (control program) wrapper needs to be created (i.e., move from
a prototype to a production Ul).
When the transition occurs to move from a prototype Ul to a production Ul, we strongly
recommend that either Java or Visual Basic be used as the implementing language.
Java allows for portability across platforms, but lacks functionality in comparison to
Visual Basic. Visual Basic is quite robust in its ability to interface and interact with
almost any application that runs on the Windows 95/98/NT operating system.
5 Measurement/Manufacturing Data Extraction Capabilities
The following sections describe the capabilities as of the end of the first year of
research of the apparel measuring system (AMS) software created by Haas Tailoring
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 13
Company under its Apparel Research Network's DDFG, MPG2, T2P5 project titled
"Extraction of Garment Manufacturing Data From 3D Whole Body Scans."
The data source for automatic measurements is 3D whole body scanned data stored in
PLY format files. (Note: PLY format is a graphical data storage format defined by a
graduate student at Stanford and used by Cyberware scan post processing software.)
Although we can determine the geometric orientation of the individual, we assume the
pose is the "relaxed" pose facing in a specific direction (as was done with all of the
Natick scans). We also assume the scan is of a "normal" (i.e., non-deformed, non-
tramatized ) individual. At this point, most of the circumference-type measurements can
handle the presence or absence of limbs, but the current software is not robust enough
to handle all injury or deformities that may occur to military personnel.
We automatically extract measurements based upon the garment being ordered. An
example of why this is important is the waist measurement. The waist measurement for
a coat may be larger than the waist measurement for pants. Or, they may be the same
size. Either situation is acceptable and downstream pattern creation rules handle the
delta between the measurements. Also, by focusing on the garment being sought
(ordered) we can limit the number of measurements to be acquired to the minimal set
needed.
The program structure and the underlying data structure are setup and designed to
handle the following garments:
Men's Coat
Men's Pants
Men's Shirt
Women's Coat
Women's Slacks
Women's Skirt
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 14
Women's Blouse (shirt)
5.1 Current General Measurements
Chest Circumference
Chest Height
Crotch Height
Height
Neck Circumference
Neck Height
Overarm Circumference
Point To Point
Point To Point Height
Seat Circumference
Seat Height
Shoulder Circumference
Shoulder Height
Waist Circumference
Waist Height
Waist Height Back
Waist Height Front
5.2 Current Coat Measurements
Full Length
Chest
Neck
Overarm
Point To Point
Seat
Shoulder Angle Description
Shoulder (left)
Shoulder (right)
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 15
Waist = 31.513
5.3 Current Pant Measurements
Inseam (left)
Inseam (right)
Outseam (left)
Outseam (right)
Rise
Seat
Waist
Waist Height (back)
Waist Height (front)
5.4 3D Model Classes and Methods
5.4.1 3D Geometry Classes
Point3D base3d.h
Vector3D base3d.h
Cylinder3D ams3d.h
LineRep3D ams3d.h
LineSegment3D ams3d.h
Plane3D ams3d.h
PlanePts ams3d.h
Point2D ams3d.h
MergeFind mfalgo.h
5.4.2 Model Classes
AMSTypes amsmodel.h
TriFace
TriFaceVector
Edge
Faces
amsmodel.h
amsmodel.h
amsmodel.h
amsmodel.h
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 16
Vertices amsmodel.h
EdgeVector amsmodel.h
AMSModel amsmodel.h
Bounds amsmodel.h
5.4.3 Model Rendering Classes
AMSModelRenderer amsrend.h
Used to render (draw) a generic bitmap representation of a specific view of the model's
vertices.
5.4.4 Base I/O Class
AMSModellOamsio.h
This is the base class for reading in and writing out coordinate and 3D geometry
information to files. It is based upon the C++ I/O streams classes. The format-specific
file I/O classes are derived from this class.
5.4.5 PLY I/O Stream Classes
PLYModellO plyio.h
The PLY I/O Stream class is used to read in a PLY file storing the vertices and faces as
specified in the file into the 3D model structures. As part of reading the file we calculate
and store a variety of bounding information as well as identify all of the edges present in
the coordinate information.
mungeistream munge.h
Note: Because the SGI has a "Big Indian" addressing architecture and the Intel world
has a "Little Indian" addressing architecture, the binary format of the PLY files had to be
swapped. Specifically, the byte order of a float is reversed. We dynamically swap bytes
as we read in a binary PLY file produced by the Cyberware software.
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 17
5.5 Extraction Classes and Methods
The extraction methods are based upon traditional measurement taking techniques
used by Haas Tailoring Company and from the 1988 U.S. Army Anthropometric Survey
(ANSUR) conducted by Anthropology Research Project, Inc. of Ohio. In addition, we
have included some shape assessment algorithms which derive from prior work on the
design and manufacture of nautical sails for racing sailboats.
The extraction code consists of two C++ class hierarchies and their interrelationships.
One class hierarchy is based upon the types of human anatomical measurements and
body shape determinations a tailor might make. Deriving from base (generic) human
classes, the top of this hierarchy is a male measurements class and a female
measurements class. Given an AMSModel, the methods for these classes will
automatically extract body measurements. The AMSModel methods provide a first level
of information extraction tools. The body measurement methods are a second level of
extraction for "straight forward" measurements.
The other class hierarchy is based upon the types of measurements and analyses that
are required by a specific garment. A given garment only needs a subset of possible
male/female measurements; therefore, an efficient approach to extracting data is to only
extract what is needed for the garment being procured. In addition, these methods
provide a third level of analysis where a particular garment measurement or shape
determination needs to combine a number of body measurements to determine one
value.
MaleMeasurements and FemaleMeasurements are derived from HumanMeasurements
which is derived from the base Measurement. The ArmMeasurements and the
LegMeasurements are also derived from the base Measurement. The
HumanMeasurements class contains variables leftArm and rightArm which are
instances of ArmMeasurements classes. Similarly, the HumanMeasurements class
contains variables leftLeg and rightLeg which are instances of LegMeasurements
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 18
classes. This represents a combination of both inheritance and "contains" type of object
relationships.
5.5.1 Measurement Classes
MaleMeasurements
FemaleMeasurements
HumanMeasurements
ArmMeasurements
LegMeasurements
Measurement
5.5.2 Garment Classes
CoatMeasurements
PantMeasurements
ShirtMeasurements
SlackMeasurements
SkirtMeasurements
malemeasurements.h
femalemeaurements.h
humanmeasurements.h
armmeasurements.h
legmeasurements.h
measurement.h
coatmeasurements.h
pantmeasurements.h
shirtmeasurements.h
slackmeasurements.h
skirtmeasurements.h
5.6 Measurement/Shape Validation Classes and Methods
The measurement/shape validation code is currently being written, but it is based upon
the above mentioned garment classes. The garment being procured defines the
combination of measurements and shape determination that is required to specify an
appropriate pattern. Based upon historical data on measurement combinations, rules of
thumb used in the apparel industry, and on the 1988 ANSUR survey we can determine
the likelihood of occurrence of a given combination.
5.7 Database Approach
The underlying database is not necessarily crucial at this stage of development, but will
(should) become very important as the measuring system moves from being a prototype
to a production system. We selected Access as the database engine for many reasons:
it is prevalent among ARN partners, the AIMS software is based on Access, Access can
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 19
be utilized by numerous Windows-based tools and languages, and it had a Data Access
Object (DAO) framework already established in MFC.
6 Glossary
Bow-legged - when the distance between the knees in a normal stance is greater than
five fingers.
Erect posture - an erect vs. natural spine (the "Z" delta from the neck point vs. the lower
shoulder blades),
Knocked-knees - when the distance between the knees in a heels-together stance is
greater than three fingers.
Prominent seat ~ The delta between a "back-to-floor" and "front-to-floor measurement in
conjunction with the delta between a "back rise" and "front rise" calculation.
Sloping shoulder - The delta between the neck to shoulder drop of each shoulder.
7 Results With Trial Subjects
During the research and investigation period covered by this project, there were eight
(8) useable scanned subjects. Please see the section in this report entitled Diagnostic
Pictures. Of these eight scans, subjects N000001, N000002, N000004, N000005, and
N000006 were male. The other three subjects, N000007, N000008, and N000009,
were female. Although the extraction algorithms were intended to be gender neutral,
the greatest emphasis was on the extraction of male measurements.
The following tables show the results from automatic extraction as compared to manual
tape measure determination of these same measurements. Grading scale is A = +/- .5",
B = +/- .75", C = +/-1.0", D > 1.0" as perT2-P5 Project Management's grading
specifications.
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 20
Height (inches)
Subject Manual Extracted Difference Grade
N000001 69.17 67.24 1.93 D
N000002 65.79 65.12 0.67 B
N000004 69.65 70.08 -0.43 A
N000005 73.43 73.47 -0.04 A
N000006 66.34 65.59 0.75 B
N000007 63.07 63.47 -0.40 A
N000008 64.33 64.25 0.08 A
N000009 65.39 65.90 -0.51 B
Chest (inches)
Subject Manual Extracted Difference Grade
N000001 35.91 36.85 -0.94 C
N000002 39.09 39.66 -0.57 B
N000004 38.78 38.63 0.15 A
N000005 47.83 56.03 -8.20 F
N000006 39.33 39.17 0.16 A
N000007 36.02 36.34 -0.32 A
N000008 36.22 37.40 -1.18 D
N000009 32.48 32.70 -0.22 A
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 21
Waist (inches)
Subject Manual Extracted Difference Grade
N000001 30.00 31.08 -1.02 D
N000002 31.02 31.77 -0.75 B
N000004 33.78 33.73 0.05 A
N000005 44.72 43.40 1.32 D
N000006 30.98 31.51 -0.53 B
N000007 26.22 27.71 -1.49 D
N000008 28.98 29.80 -0.82 C
N000009 27.20 27.84 -0.64 B
Seat (inches)
Subject Manual Extracted Difference Grade
N000001 37.91 38.45 -0.54 B
N000002 38.46 38.37 0.09 A
N000004 39.09 39.16 -0.07 A
N000005 45.20 45.47 -0.27 A
N000006 37.48 37.60 -0.12 A
N000007 36.81 36.76 0.05 A
N000008 38.35 38.69 -0.34 A
N000009 38.82 39.53 -0.71 B
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 22
Inseam (inches)
Subject Manual Extracted Difference Grade
N000001 30.43 28.92 1.51 D
N000002 31.38 30.12 1.26 D
N000004 31.81 31.01 0.8 B
N000005 33.11 32.51 0.6 B
N000006 31.10 30.50 0.6 B
N000007 27.83 28.08 -0.25 A
N000008 29.69 29.07 0.62 B
N000009 30.63 30.32 0.31 A
Point-to-Point (inches)
Subject Manual Extracted Difference Grade
N000001 19.00 19.26 - .26 A
N000002 21.50 21.13 .37 A
N000004 20.50 19.51 0.99 C
N000005 22.00 22.34 - .34 A
N000006 21.50 21.07 .43 A
N000007 16.75 17.97 -1.22 D
N000008 17.00 18.125 -1.13 D
N000009 16.75 17.08 - .33 A
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 23
8 Measurement/Posture Description Files
[Subject] Name = n000001.sprd.rgb.edt.ply.measurements.Inches.txt
[General Measurements]; Units = Inches Acromial Height = 55.140 Chest Circumference = 36.849 Chest Height = 48.416 Crotch Height = 28.915 Height = 67.244 Neck Circumference = 16.097 Neck Height = 57.561 Overarm Circumference = 48.208 Point To Point = 19.260 Point To Point Height = 54.140 Seat Circumference = 38.447 Seat Height = 32.422 Shoulder Circumference = 41.444 Shoulder Height = 53.390 Waist Circumference = 31.084 Waist Height = 37.993 Waist Height Back = 39.457 Waist Height Front = 37.993
[Coat Measurements] Back Width = 0.000 Bicep = 0.000 Full Length = 28.64 6 Chest = 36.849 Neck = 16.097 Neck Description = Overarm = 48.208 Point To Point = 19.260 Posture = 0.000 Posture Description = Seat = 38.447 Seat Description = Shoulder Angle Description = Full Sloping Shoulders Shoulder Build Description = Shoulder (left) = 3.421 Shoulder (right) = 3.421 Shoulder Pitch = Sleeve Inseam (left) = 0.000 Sleeve Inseam (right) = 0.000 Sleeve Outseam (left) = 0.000 Sleeve Outseam (right) = 0.000 Waist = 31.084
[Pant Measurements] Abdomen = 0.000 Calf (left) = 0.000 Calf (right) = 0.000 Inseam (left) = 28.915
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 24
Inseam (right) = 28.915 Knee (left) = 0.000 Knee (right) = 0.000 Outseam (left) = 37.993 Outseam (right) = 37.993 Rise = 9.078 Rise Description = Seat = 38.447 Seat Description = Thigh (left) = 0.000 Thigh (right) = 0.000 Waist = 31.084 Waist Height (back) = 39.457 Waist Height (front) = 37.993
[Subject] Name = n000002.sprd.rgb.edt.ply.measurements.Inches.txt
[General Measurements] Units = Inches Acromial Height = 53.397 Chest Circumference = 39.664 Chest Height = 46.885 Crotch Height = 30.117 Height = 65.118 Neck Circumference = 15.815 Neck Height = 56.262 Overarm Circumference = 54.309 Point To Point = 21.127 Point To Point Height = 52.397 Seat Circumference = 38.369 Seat Height = 33.701 Shoulder Circumference = 45.352 Shoulder Height = 51.647 Waist Circumference = 31.773 Waist Height = 38.745 Waist Height Back = 40.148 Waist Height Front = 38.745
[Coat Measurements] Back Width = 0.000 Bicep = 0.000 Full Length = 26.145 Chest = 39.664 Neck = 15.815 Neck Description = Overarm = 54.309 Point To Point = 21.127 Posture = 0.000 Posture Description = Seat = 38.369 Seat Description = Shoulder Angle Description = Full Sloping Shoulders Shoulder Build Description = Shoulder (left) = 3.865
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 25
Shoulder (right) = 3.865 Shoulder Pitch = Sleeve Inseam (left) = 0.000 Sleeve Inseam (right) = 0.000 Sleeve Outseam (left) = 0.000 Sleeve Outseam (right) = 0.000 Waist = 31.773
[Pant Measurements] Abdomen = 0.000 Calf (left) = 0.000 Calf (right) = 0.000 Inseam (left) = 30.117 Inseam (right) = 30.117 Knee (left) = 0.000 Knee (right) = 0.000 Outseam (left) = 38.745 Outseam (right) = 38.745 Rise = 8.628 Rise Description = Seat = 38.369 Seat Description = Thigh (left) = 0.000 Thigh (right) = 0.000 Waist = 31.773 Waist Height (back) = 40.148 Waist Height (front) = 38.745
[Subject] Name = n000004.sprd.rgb.edt.ply.measurements.Inches.txt
[General Measurements] Units = Inches Acromial Height = 57.4 65 Chest Circumference = 38.627 Chest Height = 50.457 Crotch Height = 31.010 Height = 70.079 Neck Circumference = 16.197 Neck Height = 59.847 Overarm Circumference = 57.043 Point To Point = 19.507 Point To Point Height = 56.465 Seat Circumference = 39.158 Seat Height = 35.354 Shoulder Circumference = 42.768 Shoulder Height = 55.715 Waist Circumference = 33.732 Waist Height = 43.449 Waist Height Back = 45.816 Waist Height Front = 43.449
[Coat Measurements] Back Width = 0.000 Bicep = 0.000
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 26
Full Length = 28.837 Chest = 38.627 Neck = 16.197 Neck Description = Overarm = 57.043 Point To Point = 19.507 Posture = 0.000 Posture Description = Seat = 39.158 Seat Description = Shoulder Angle Description = Full Sloping Shoulders Shoulder Build Description = Shoulder (left) = 3.383 Shoulder (right) = 3.383 Shoulder Pitch = Sleeve Inseam (left) = 0.000 Sleeve Inseam (right) = 0.000 Sleeve Outseam (left) = 0.000 Sleeve Outseam (right) = 0.000 Waist = 33.732
[Pant Measurements] Abdomen = 0.000 Calf (left) = 0.000 Calf (right) = 0.000 Inseam (left) = 31.010 Inseam (right) = 31.010 Knee (left) = 0.000 Knee (right) = 0.000 Outseam (left) = 43.449 Outseam (right) = 43.449 Rise = 12.439 Rise Description = Seat = 39.158 Seat Description = Thigh (left) = 0.000 Thigh (right) = 0.000 Waist = 33.732 Waist Height (back) = 45.816 Waist Height (front) = 43.449
[Subject] Name = n000005.sprd.rgb.edt.ply.measurements.Inches.txt
[General Measurements] Units = Inches Acromial Height = 60.241 Chest Circumference = 56.034 Chest Height = 51.058 Crotch Height = 32.508 Height = 73.465 Neck Circumference = 20.902 Neck Height = 63.033 Overarm Circumference = 67.973 Point To Point = 22.389
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 27
Point To Point Height = 59.241 Seat Circumference = 45.471 Seat Height = 38.819 Shoulder Circumference = 48.091 Shoulder Height = 58.491 Waist Circumference = 43.400 Waist Height = 45.548 Waist Height Back = 47;.587 Waist Height Front = 45.548
[Coat Measurements] Back Width = 0.000 Bicep = 0.000 Full Length = 30.525 Chest = 56.034 Neck = 20.902 Neck Description = Overarm = 67.973 Point To Point = 22.389 Posture = 0.000 Posture Description = Seat = 45.471 Seat Description = Shoulder Angle Description = Full Sloping Shoulders Shoulder Build Description = Shoulder (left) = 3.792 Shoulder (right) = 3.792 Shoulder Pitch = Sleeve Inseam (left) = 0.000 Sleeve Inseam (right) = 0.000 Sleeve Outseam (left) = 0.000 Sleeve Outseam (right) = 0.000 Waist = 43.400
[Pant Measurements] Abdomen = 0.000 Calf (left) = 0.000 Calf (right) = 0.000 Inseam (left) = 32.508 Inseam (right) = 32.508 Knee (left) = 0.000 Knee (right) = 0.000 Outseam (left) = 45.548 Outseam (right) = 45.548 Rise = 13.040 Rise Description = Seat = 45.471 Seat Description = Thigh (left) = 0.000 Thigh (right) = 0.000 Waist = 43.400 Waist Height (back) = 47.587 Waist Height (front) = 45.548
[Subject]
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 28
Name = n000006.sprd.rgb.edt.ply.measurements.Inches.txt
[General Measurements] Units = Inches Acromial Height = 53.784 Chest Circumference = 39.166 Chest Height = 46.897 Crotch Height = 30.500 Height = 65.591 Neck Circumference = 17.637 Neck Height = 56.670 Overarm Circumference = 54.425 Point To Point = 21.073 Point To Point Height = 52.784 Seat Circumference = 37.602 Seat Height = 34.724 Shoulder Circumference = 45.292 Shoulder Height = 52.034 Waist Circumference = 31.513 Waist Height = 40.010 Waist Height Back = 41.944 Waist Height Front = 40.010
[Coat Measurements] Back Width = 0.000 Bicep = 0.000 Full Length = 26.171 Chest = 39.166 Neck = 17.637 Neck Description = Overarm = 54 . 425 Point To Point = 21.073 Posture = 0.000 Posture Description = Seat = 37.602 Seat Description = Shoulder Angle Description = Full Sloping Shoulders Shoulder Build Description = Shoulder (left) = 3.886 Shoulder (right) = 3.886 Shoulder Pitch = Sleeve Inseam (left) = 0.000 Sleeve Inseam (right) = 0.000 Sleeve Outseam (left) = 0.000 Sleeve Outseam (right) = 0.000 Waist = 31.513
[Pant Measurements] Abdomen = 0.000 Calf (left) = 0.000 Calf (right) = 0.000 Inseam (left) = 30.500 Inseam (right) = 30.500 Knee (left) = 0.000 Knee (right) = 0.000 Outseam (left) = 40.010
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 29
Outseam (right) = 40.010 Rise = 9.511 Rise Description = Seat = 37.602 Seat Description = Thigh (left) = 0.000 Thigh (right) = 0.000 Waist = 31.513 ;
Waist Height (back) = 41.944 Waist Height (front) = 40.010
[Subject] Name = n000007 . sprd..rgb.edt.ply.measurements . Inches .txt
[General Measurements] Units = Inches Acromial Height = 52.041 Chest Circumference = 36.337 Chest Height = 45.377 Crotch Height = 28.083 Height = 63.4 65 Neck Circumference = 16.510 Neck Height = 54.326 Overarm Circumference = 61.639 Point To Point = 17.971 Point To Point Height = 51.041 Seat Circumference = 36.756 Seat Height = 31.328 Shoulder Circumference = 39.892 Shoulder Height = 50.291 Waist Circumference = 27.709 Waist Height = 39.348 Waist Height Back = 41.564 Waist Height Front = 39.348
[Coat Measurements] Back Width = 0.000 Bicep = 0.000 Full Length = 26.243 Chest = 36.337 Neck = 16.510 Neck Description = Overarm = 61.639 Point To Point = 17.971 Posture = 0.000 Posture Description = Seat = 36.756 Seat Description = Shoulder Angle Description = Full Sloping Shoulders Shoulder Build Description = Shoulder (left) = 3.285 Shoulder (right) = 3.285 Shoulder Pitch = Sleeve Inseam (left) = 0.000 Sleeve Inseam (right) = 0.000
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 30
Sleeve Outseam (left) = 0.000 Sleeve Outseam (right) = 0.000 Waist = 27.709
[Pant Measurements] Abdomen = 0.000 Calf (left) = 0.000 Calf (right) = 0.000 Inseam (left) = 28.083 Inseam (right) = 28.083 Knee (left) = 0.000 Knee (right) = 0.000 Outseam (left) = 39.348 Outseam (right) = 39.348 Rise = 11.265 Rise Description = Seat = 36.756 Seat Description = Thigh (left) = 0.000 Thigh (right) = 0.000 Waist = 27.709 Waist Height (back) = 41.564 Waist Height (front) = 39.348
[Subject] Name = n000008.sprd.rgb.edt.ply.measurements.Inches.txt
[General Measurements] Units = Inches Acromial Height = 52.687 Chest Circumference = 37.397 Chest Height = 46.261 Crotch Height = 29.074 Height = 64.252 Neck Circumference = 13.381 Neck Height = 55.257 Overarm Circumference = 49.519 Point To Point = 18.125 Point To Point Height = 51.687 Seat Circumference = 38.691 Seat Height = 32.728 Shoulder Circumference = 39.8 60 Shoulder Height = 50.937 Waist Circumference = 29.802 Waist Height = 39.836 Waist Height Back = 41.683 Waist Height Front = 39.836
[Coat Measurements] Back Width = 0.000 Bicep = 0.000 Full Length = 26.183 Chest = 37.397 Neck = 13.381 Neck Description =
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 31
Overarm = 4 9.519 Point To Point = 18.125 Posture = 0.000 Posture Description = Seat = 38.691 Seat Description = Shoulder Angle Description = Full Sloping Shoulders Shoulder Build Description = Shoulder (left) = 3.570 Shoulder (right) = 3.570 Shoulder Pitch = Sleeve Inseam (left) = 0.000 Sleeve Inseam (right) = 0.000 Sleeve Outseam (left) = 0.000 Sleeve Outseam (right) = 0.000 Waist = 29.802
[Pant Measurements] Abdomen = 0.000 Calf (left) = 0.000 Calf (right) = 0.000 Inseam (left) = 29.074 Inseam (right) = 29.074 Knee (left) = 0.000 Knee (right) = 0.000 Outseam (left) = 39.836 Outseam (right) = 39.836 Rise = 10.762 Rise Description = Seat = 38.691 Seat Description = Thigh (left) = 0.000 Thigh (right) = 0.000 Waist = 29.802 Waist Height (back) = 41.683 Waist Height (front) = 39.836
[Subject] Name = n000009.sprd.rgb.edt.ply.measurements.Inches.txt
[General Measurements] Units = Inches Acromial Height = 54.042 Chest Circumference = 32.697 Chest Height = 47.452 Crotch Height = 30.317 Height = 65.905 Neck Circumference = 13.132 Neck Height = 56.020 Overarm Circumference = 54.381 Point To Point = 17.084 Point To Point Height = 53.042 Seat Circumference = 39.534 Seat Height = 33.947 Shoulder Circumference = 37.446
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 32
Shoulder Height = 52.292 Waist Circumference = 27.837 Waist Height = 40.861 Waist Height Back = 43.512 Waist Height Front = 40.861
[Coat Measurements] Back Width = 0.000 Bicep =■ 0.000 Full Length = 25.703 Chest = 32.697 Neck = 13.132 Neck Description = Overarm = 54.381 Point To Point = 17.084 Posture = 0.000 Posture Description = Seat = 39.534 Seat Description = Shoulder Angle Description = Half Sloping Shoulders Shoulder Build Description = Shoulder (left) = 2.977 Shoulder (right) = 2.977 Shoulder Pitch = Sleeve Inseam (left) = 0.000 Sleeve Inseam (right) = 0.000 Sleeve Outseam (left) = 0.000 Sleeve Outseam (right) = 0.000 Waist = 27.837
[Pant Measurements] Abdomen = 0.000 Calf (left) = 0.000 Calf (right) = 0.000 Inseam (left) = 30.317 Inseam (right) = 30.317 Knee (left) = 0.000 Knee (right) = 0.000 Outseam (left) = 40.861 Outseam (right) = 40.861 Rise = 10.545 Rise Description = Seat = 39.534 Seat Description = Thigh (left) = 0.000 Thigh (right) = 0.000 Waist = 27.837 Waist Height (back) = 43.512 Waist Height (front) = 40.861
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 33
9 Sample Diagnostic Pictures of Subjects
The following pages contain sample diagnostic pictures used to evaluate the
performance of the data extraction algorithms. The pictures are for subjects:
N000001
N000002
N000004
N000005
N000006
N000007
N000008
N000009
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 34
nOOOOOl .sprd.rgb.edt.ply
Chest Height Range
Chest = 36.849" (935.975 ply units) 3&$JL
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 35
n000001.sprd.rgb.edt.ply Waist To Floor.
.A:
yj
am
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 36
nOOOOOl .sprd.rgb.edt.ply Waist To Floor
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 37
nOOOOOl .sprd.rgb.edt.ply
Waist Evaluations
\.
v
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 38
n000001.sprd.rgb.edt.ply
Waist Height Range
Waist = 31.084" (789.523 ply un
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 39
•,£v ■sn».
'■%**-• v;:»yf.-.!>„s:'j
^^■:":iHs&A^A
6^i
Top View NQ00Q1
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 40
n000001 .sprd.rgb.edtjjty
&'&.
££<? xss
04.&1J
8^:^?^
&S£
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 41
Seat Height Range
m'/if-l/fld'/ :iii\\S\\i,K^:">. ...^. V.-.V;ii:-jj; j i -: j -; i f \~M\V-.\ S \ '-.:• - ?,$ig\ ! >lil"in l'ÜvÜln'^i'i's', \\ 'JioUO.^;'"-" .-"V^-'iSi
*M)'<\\\t\>\\\\i \ i«ll\\V\.i;^: -j&W/i'iVJI/fR.. ^ii<IHH;)i; ; • •; 1 vU*\ ".'-..... - ^;«'/^:y:-»M}
'«■iV.-.\\\*ir"t\ j ).vV.••'•'.K ' ii." M JW
! ntit ii f S >- :■< Hit'. ■>;;.',■■.'' :iHUi!lt/A'■■' /' WW/f '■' H;.'!ti)!l.' ' / S ■ \i\ma//// ,■■■■ ii«!»;»;-.'.:- /
wmvu .' iM'ii);'') < f
::I>II|V;-;,V:-| ; I I
'-. v \ \ \ \\wm x V i • \ \\v,W
■: ? 1 > > > M ^i\W f if !Mii MUfcf % i f I i I ! Ml!l\l|
I j ; : 5 i. 'i 1 S U s,\üT i. i s \ \ •! *. V \ \ \ lU'I \ \ "> •. v \ v v ',- * ■: '■■<■■& \ '. \ \ \ \ \ \,:,,\,,i
-. >•. -,•■, '.. v '-. ••. \ sO.vy-f V '','V,\\\V. U\y=*
8S:lw:+.v;--i.-
iBÖä*,S,,i--.5----"t,''
1 f IJ1*N'l!
,-t y *• j nfe
y«sa 111
5IK-\-'*S-;--V •*
>/ •"/,
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 42
n000001.sprd.rgb.edt.ply
Seat Height Range
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 43
_._r. 0 r.f
Neck Height Range
•'•'• :iV ./"";; s ■» *** •.
iT / ' s \ \ ;•
v>i 1 t ■■ ', i \tf» 1 : .- I .• i i •• i;K si- j i ; •\. S 's L,\y£ Kill ; .' IIII: I : .." \ \ \ Will- III;! 1 \ 1 t i.Hr. III; i i ; : ■ •■ 1- ;iir.!
SI'!- i i ; ; 1 J ;((;; 111';; t ; \ i' ; i ! Iiv f.'.li : \ I V1 1 1 ■• \
S .' • • -li'l •' s ; t :; i!
ll !. \ \ ■. % ' (' ,' j n ?■
V I '; \\ \ \. .' I • fi\t ■'' ••' -: t ; /'
; S :■ \ ■>
ft \ \ 's \ •■;■>■■,
-: -ft \ \\ \ y/Hk V" '. s ■•. S <•*■ : y ; ; .'
\ s \ \ \ ■■'. i 1 1 : ll 1 1 1 ; II s ! 1 i •■ I! i 1 .' .' I'-
(tin ' * 1 1 i I-:' * i » I > jV
ll :• s ,! ; "1 "• ','■>■ >'■ li-:; f .-' .' i iiii:■ V ; .' •' ' a' ■I *» "■ •■ 1 l;' rM ■'t / ■■■. V: ! fi »it If / >, ^ V'.ll
•-.. ^.'iii *£*■-• .,"■ *•*-... "-:h.
„,*if' • —-IV V'-tj. -*■-. 11 ■ v. ^r«(.w
^?y/TC' ' ■"- ■ !l- :\ N'.'!i>,
..■:•' -s5*5".!''' .-' ;'i; ?\ x-rr^*. -'' /' ,' ' 1 / .' ;
: ', v- '•■'►"vv
.^■•-■- ■
&£- -•• 'S'---'' " "-•'^"-:--:%^ •«$&:.
Point To Point Line"■■•• .. ■* "*^K Art'* ; i \\
i/f \ ßf/j i \^
fi'i! > ■ •: V"*
jl!\ i i His. t t ; i^.
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 44
nQOOOOl .sprd.rgb.edt.ply
Crotch Height Range
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 45
nOOOOOl .sprd.rgb.edt.ply
Waist To Floor
\.
v
Back-to-floor measurement
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 46
nOOOOOl
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 47
n000002.sprd.rgb.edt.ply Chest Height Range Chest = 39.664 " (1007.476 ply units)
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 48
n000002.sprd.rgb.edt.ply Waist To Floor
m's™
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 49
n000002.sprd.rgb.edt.ply Waist To Floor
i§§y?
&~iü3ä
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 50
n000002.sprd.rgb.edt.ply Waist Evaluations
f /
, \
\
V
(
1
)
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 51
n0000Q2.sprd.rgb.edt.ply
Waist Height Range
Waist = 31.773" (807.031 pi
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 52
#'■' c ".. ■y.y.-tw^« W*. :«it.»s--.-«>.
fei ; * v". .
■'■■..«:■ 'V.-"-: •■": *.•'*"■•.';■.■! ■'■&■?
v. '■'■■■■■■\\.0.~r::x&**.
'if V.- : '..V£.
■A*. ■2£
'ma
''*£ ■■ r\-'»:''.\':\»! »»■.. •/.:v-t:.'>
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 53
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 54
Seat Height Range
m^ ,i\-,;\nv7-.:. v.-;'..•.:■• 'i:-;;.- //•-:■<. V- ^ ■ -■•- "i <"
fit". jlijHi! !>!'-J/ ' v JlV.U'.'.l I'.l- i I '. I '- :, •• •• ,•".
Tl-v!C-*';r.;::l *;> I ■■ ; < .'.-.- ~*w>t:\:/.w;:•■-.< >) i > S::-K4-V/V:V:->y.'•■'•* •;•'•. ■■ &1 vii-•;"••;':/J-' i ■' ;• '■ • St-:-"V;«t.\ti .•>••'',',•// .' •' ^•;i/:-;-V >';Vv.\'. f.' .•• .-• / J ( l::';if?jf/;,.-V.!M';i i ,! f .-' ,*
-r s"r.:ii;i'i!Mr;;ii;i';),'• / ; *ii::i!i|f;if;i;;-Mfi; ' •' / mi»:i\-H:\;\-i->})> ) :. IlKi" I ■■•■VI "t :/■■<> ■■"■■ ! '
fW;:!;r|;!':'!i ■': ;! i ! ti",\>\l\;:l!!\;ll-:;:\\> ; I i
.•ii.:>l;,'ri:;i.J,j: -f-
l>V;Hi-:M'; i:i;:?i: ;•: '. :■ I ' Bv.i!':i!i:ii;-!i;i:';i ; = :-.= *■ ,' Vj:-:.\\..\>::ii.:l.-.r.l!; •■ ■ •' ? »n.vn:;ii:!i:.'iü; i i < ; ■: Y&Swuiüliiii'! Uli ; ■:
■&M£Zm;-:i:ii < ■ ;■ •: Bi'-:'iir t:i /1 ; I -: ) w:;;jt«;:ir;;i-(i • i ; i «sas;:;:ii:i:; ■ ■: i \ t
-«\~rrr
at.-.V-'iV'^f * *
HVtV-k\' • IJl'iv.X"; -• \Y> V [\V-.ie\M>.\ si', -j
W»rt\"iN-"i'"■■>. \ =.'•-.
>y,\vAv. V ••/--. 'V - " ■A\v-r-Avo.\ ■: -. ■>. i
. x^M-i •-. v-.\ k
vyvv.^v v > '.■•.
it\\\V'V.iv<.v, i-x; irr; A » ; , - ; :\ I \
■(UlV. i •'.!< (■■ r'
MAOSU
•r- ;/ jVi'i :!.*:-1)J|
'.■ •:.-■ • ; ( t It? :■ . r i.' ■-:) 111 !J|:J
JA \m% / »■;• i < jWiig!«
r If * >-:f! tj:fia
} 'mum pirn
...»i«!HI
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 55
n000002.sprd.rgb.edt.ply Seat Height Range
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 56
n000002.sprd.rgb.edt.ply
Neck Height Range
S..
Point To Point Line
W
mi
■■;*
I st
Ik-
m m
IK
\\1
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 57
nOQ0002.sprd.rgb.edt.pl
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 58
n000002.sprd.rgb.edt.ply Crotch Height Range
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 59
n000002.sprd.rgb.edt.ply Waist To Floor
0
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 60
n000004.sprd.rgb.edt.ply Chest Height Range Chest = 30.627" (961.129 ply units)
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 61
n000004.sprd.rgb.edt.ply Waist To Floor.
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 62
n000004.sprd.rgb.edt.ply Waist To Floor
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 63
n000004.sprd.rgb.edt.ply Waist Evaluations
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 64
nOOOOOil.sprd.rgb.edt.ply Waist Height Range Waist = 33.732" (856.801 pi
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 65
...ja*
^■t £■?■ ~^-
?'■'•■■■■■:'..>'■■: ;".:ä "f..-'•• v.,:•_-,>.?/:y.-j!-v=
......... ...<*
^■■.-•■^
&Mk ?r
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 66
n000004.sprd.rgb.edt.f
m
iS$&i\t
W$. &P
m?.
&s
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 67
Seat Height Range
cfTi w 1!'. 11'. I i :', I ! I i ! i I ; •:. t.-.i\\:\*. (.: \ I •. : I : r ( : *. '< ti'.Mi «.£; i >. :! -. 1 i * i ; \ \ t : \
srn^m
V !. V \ \ \*.:.\:inri
\ \ J .J,-I\N(.V;:-! '... •• ■;••••-.. >• •> -vw*
\J\mwsik'/'//f/y /' \ ■', ■> \ \Vi\SiViV
PS??/( III .: :mi) i / / /
Wf; i ( ? < mi"! i.' mi■///// / / maun /1 /- ,.-
WlliiU f / .. "ff//.< /' .>'
$m'*\\ *-■■:. ÄTOAV-*
•\ '■-, 'V s V U^Ul * * \ !. ', V *s ". 1 i I 1'.
'^ ■-. \-i t\i\W
! '. I 1 1 ! lift
< mm //ffi
■■■■ywumk ■mm TVVWiW ••■ ^ ^ ifm
/ f Arfc<Rj«fl
mm nvmi
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 68
n000004.sprd.rgb.edt.ply Seat Height Range
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 69
n000004.sprd.rgb.edt.ply
Neck Height Range
.) S 11.
J 1 i ■ !1\
Iff// i.'iHüi / j//.»' '; v 1\U\\ ' ' J J P ^
I r J r u
>1 \ '. \ 'l
*. ' * t~ • IS
Ulli ': I -'i fl///f
■-\;t f t '-** ill:! •
liv•.-' \ VJi ■' K'/.-"-
if-* ..•■ ........ - . -. Ij
j*&;-- '"•"•-::^- *#?!}
^^ «>■■'■■'::■.■■•.■■.■• '•■ .*"*■. ' '-/**• •'/ "*«l- ■ ^••.v.::.:r:,'
"•■-''.;.':'.": :-^.. Point To Point Line
1(1 & f i f ': \ '. \7i
$' i i * i ! \ \\ ff'i ! "•■ J \ j l'^ ft I i \ ■w.
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 70
n000004.sprd.rgb.edt
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 71
n000004.sprd.rgb.edt.ply Crotch Height Range
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 72
n000004.sprd.rgb.edt.ply Waist To Floor
Q / X
( )
\ \
\f Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 73
n000005.sprd.rgb.edt.ply Chest Height Range Chest = 56.034 " (1423.266 ply units]
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 74
n000005.sprd.rgb.edt.ply Waist To Floor.,
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 75
n000005.sprd.rgb.edt.ply Waist To Floor,
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 76
n000005.sprd.rgb.edt.ply Waist Evaluations
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 77
n000005.sprd.rgb.edt.ply Waist Height Range Waist = 43.400 " fl 102.351 ply unitsj
JF\ Cy 7
/f^v
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 78
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 79
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 80
Seat Height Range
mmammi <
mfisiiiij/fti > i < WÄ i ' j i > f I- i ': MffJi !JN| i \
Wjljiilli( / miiiiSi; i / /—— miljlij/?/ ,- ■ '"lt\'\< ! ' I I I f
lllfflflll lijijilj ij MM j sij!! ! ! i i i i r i* *f
MlllIU v SftVUV i !■
avf£|4A:-V;>-.v'..
K;l ■]>.•. \v. •. v..T -
} )slU\s\Iiä
... *.••.'. -.•-*■.• \v\ ■W",^»3 . .. . • .. \ ••. \ \*. \1 \ ■ V'X-.*A,Mw'
j si uiimw / /" / i ;' f f/i\h"tr.;:.M
' -.: i t < \ ii.'f.'iii.'liihä '• * ■* *t\l,i',!/ %>ir"'t'.
'■> V \ \l.\\\\<>.;!dr!.<Sk -t—"r ,
V s ; m
^ //Ml '/! if
PAW" " """-^HBK
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 81
n000005.sprd.rgb.edt.ply Seat Height Range
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 82
n000005.sprd.rgb.edt.ply
Neck Height Range
w
.j0%>y'J} »«**':
*&::■
V/;/ Point To Point Line
ßf// /// // *i> ■' i (
/'iff ! I
W*
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 83
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 84
n000005.sprd.rgb.edt.ply Crotch Height Range
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 85
n000005.sprd.rgb.edt.ply Waist To Floor
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 86
n000006.sprd.rgb.edt.ply Chest Height Range Chest = 39.166 " [994.820 ply units)
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 87
nQDQ006.sprd.rgb.edt.ply Waist To Floor.
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 88
n000006.sprd.rgb.edt.ply Waist To Floor
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 89
n000006.sprd.rgb.edt.ply Waist Evaluations
\
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 90
n000006.sprd.rgb.edt.ply Waist Height Range Waist = 31.513 " (800.436 ply units]
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 91
♦v>.v-. * '••■<•
Vi:';-..';;
;'.'.'i-*v'.>
V~<*c., :•%■
V'^: :'-s'•■."•"•'•;;"f>"<■•.• Vv.'.-iV-Vau.
"'"i !:-.-i«.-;,?l!,: *.*■■'■ "■' :-v ■:* * '.■■v.'+X<! ^~"> t,;:»-i'-':f'*-v.y!-"'. ":--■;-.'■"; '■'■■■< >: Liiirf
.v' :**:*A02Z:^:f??k
*€ >"#'■ ^:*^; .;,.;#
!>,.v'.^
■:' ,5?» "i U.;'... - ,-..>':-!~-4
»:{.->-X.l--.v;.Aoi *v -v .'>•.' '• ^;
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 92
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 93
Seat Height Range
. .;',1';v.o■,.; >."■ \ "KIII'.'.OÖII'-.-I'-: :■ \ \ \ r
Biviv'-wJ«;'/-,!^-''••."•■ i -' .•' «"i-.^il1 *' \ •> '•• \ \ \ * ' /.%• • ■ ■'.«V-.NO.V-.SSv. v>»"': •'
_.J.:;.WV-Vo.Y\ ■'(\ "■ i > ) äA\UVi-.\\\,-.>;iuy!\
,1 /,' ■
^'"v^ii"v-<.V^';-'?;s,,-'-V'- ■■ ji(i'ii!f.«=.<.=.(-:i.-;-;;j/'/ /
'W-.™ •■:•:=.:•• ::l I flf I-,','» f / .' xavjiusjÄüuuuiJiiv-i-jL.
;iflf, .'.mW«!)«:'!: -'«v-;!i;ii:-;;:
,;.::Y:-;^ .< .
^■l=Eli!~='i;-;; i: J.vV-V *■;
•iirM\-V(";:)i: ■
L&i::;:::'t< < >' ..■■ 9mm!i ■: ) ; ,< Kif.'l ; / / / /
■;r!•: ; ; ; < j! i I ■: ! I f "j.
■\n\\\\ \ I ( .•> !;;.:M ; i ■ ! .'■ '!»>>i ( I ■: ■' ;
U4-!-f- ' ~y~
JilE«. 8!«v
mill'. ;1 A xli \ J
!Hä:Vl:V! 111; .A
»ll^MU^ '•'■■' ^ ■'■ '■■■■ Ktti's'iUU'.C: \V. 1 < •' k(Al\M:. ■.•<■. VI S >
frY.HY-.Va ;. V\ \ 1,1 \ V.- - *..
IM.-AlV'S'-VA \ ~-.\ ,-^
\ *,'. ill ft ■• I (: I I; XI *
Hit;! iL'I IpH
sV ■ i:- jkhfliHis <;• • ;■ «-j "ü-iiii«, =■ ;.'i teiii>'\h\.3
iilHiii
Krai
W ■S-^t.-o-.p-i \
a to V. ■•>■.. v'
*«J^M\ "i. W
.'; V/.'iVirJilHiii:
■ / .' / J.- >:: I /Ivinn.
M Ami / )
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 94
n000006.sprd.rgb.edt.ply Seat Height Ran
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 95
n000006.sprd.rgb.edt.ply
Neck Height Range
.*;•''•'.••'' .-'"' ;//// / <. ', r p.'U =' / ' •■ ':■!; ■
ii)!!i < \ lil Ti fci 1 .< ' i\\ K- jfu); i i iiilj jqii i j f u> <
IN! ( (UK! ■ 1. If: ■ J
'• ty'lA \ i \\U .>. .•; V\W\ v-. / / // * •' • V\\\ \ "• /'//'i "\A *: ftUW \
%y\\\\ ■••. ..-' .' / il'H ■• V
//!(!! ?! U s ' ' ' • i 4 \\\\)} \ { \ yi f. < .-1 t } V \ ':■ I li iw/ / \ %A i ;1
#'--"- ""'"•••^Ik fex
tJ: ■ ■■' .■■' >■' i h i'iWC^, *•*'' s'r' .''" ,-' / / i ivi. \ ■•, S.S:-J.
**••,'' ,■ ■' -'' »•' ' • \\\ \\x eft' j' t' / ,■•' S i
• /■ > ! •'•'-!■>■«
-<££---: ■'■'■■'■■'":.-■ '"■v. ' . * ■ - • " •• ■ ■—■■■VV;->
J0"'"'" -■■ •"-•'"" "V;-v.':'.".: ••■••■•■■■•.'.'5t>... •••■•• ::-^o. vr-y '■■:••'**
Point To Point Line
i( ii\\ jfiW,- ,■..-■'■' J\\\ ; ! '.n
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 96
&*&?*
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 97
n000006.sprd.rgb.edt.ply Crotch Height Range,
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 98
n000006.sprd.rgb.edt.ply Waist To Floor
(-l
\ N \ 1
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 99
n000007.sprd.rgb.edt.ply Chest Height Range Chest = 36.337 " (922.966 ply units)
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 100
n000007.sprd.rgb.edt.ply Waist To Floor,
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 101
n000007.sprd.rgb.edt.ply Waist To Floor„
*^8'
^
hM \X:.
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 102
n000007.sprd.rgb.edt.ply Waist Evaluations
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 103
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 104
v." >.-',■*."*■L'!:VV'V
v.«:-.v.\ • •":• £% ^■\'\-. "•:.:\*!:.f-.v
Mvv&-v:.= --:;-?i..-.Kf»«
^:v. •*• " .* "■''•'-• .it)
■«i^:*>.:^Si&
**i*-v ..■••••:..;■&
.is.
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 105
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 106
Seat Height Range
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 107
n000007.sprd.rgb.edt.ply Seat Height Range
I
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 108
n000007.sprd.rgb.edt.ply
Neck Height Range
..#;•-... *'.*. "* !<!■/■. -\" -. Y'" Xr a'!// äy.W *
-,.• i r ./ .J .
' "\ : •• ''•* >
"v> V; \\
rV >-*
'<■■ N\v • .. jL. ,•«:?• "0- ^ / .'J
fff Ml .' ? .' : i s
'■}, )// ;■ ■W!.H/ 1 .i// / s>4
•Z ' ■-■ '■•{
^"■'-
,s**^ -:?:.:!..•■•.:.-■•• ./
.^*s*;v.::'.'"- ''..'■""
,#'•>' .'•
1 •. *i?m^
■ V*-\
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 109
n000007.sprd.rgb.edt.ply
JA
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 110
n000007.sprd.rgb.edt.ply Crotch Height Range
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 111
'• I
n000007.sprd.rgb.edt.ply Waist To Floor
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 112
n000008.sprd.rgb.edt.ply
Chest Height Range
Chest = 37.397 " (949.890 ply units]
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 113
n000008.sprd.rgb.edt.ply Waist To Floor,
a "\>
m
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 114
n000008.sprd.rgb.edt.ply Waist To Floor, m
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 115
n000008.sprd.rgb.edt.ply Waist Evaluations
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 116
n000008.sprd.rgb.edt.ply Waist Height Range
Waist = 29.802 " (756.960 ply uni
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 117
^ '.^y. .', - ;.-v . ■
■v*ft->.';.:
"'■3'.' ' fH&5fMi$fiv? : •; :V!
;. ■ ;.._. •■ 5i;=-sf=^i -f^'. ■;.oi'* > ■*Iij. >■:•■ -:
..''^^'^j':r^V-s'','V.
' -" 'vt^S^'-fe^TuSlS^TOiS**:»
■i>.;.v;-.-
?'' v: iv^ *.;'
■:'-: S-3N -.v.''.«.- " '. *
4 .;:,. ■■' v .•' ■*■
:N *-.i:/*..--. \'-,v "V .. ■.,• •..'. V«r;. • •. ~> ->
■\t* ''-•: ! &. V
'&?; \v % W.' ■V, •.■;.<•.;>•.*
.V i\ '■' ;'.'■.. /:':''','
'"'^•Vö*'
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 118
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 119
Seat Height Range
Vr;'!,'.'!:::.'.'.'.' < f .' '
. •mmnü::u\\ 11 < jZHw'i::::?]!); • ■ I frjtr::::.::':.".:i\ I ,• ! I £;.";;;;;;;r;;.!!f; .= j ~":;jiiiirmi!: f.: :• i !::!MIIIIIIIJ! '■ ■ I ■ ■ I
i":iM|l«|!IJ!.i ! • J . m::: :ni|| 11111; -■ ,• i i : (*i=.v.!'immi!i >\ ( > ^?A«y.:;:;llll|:i/ '■/,.
r-i^;v!^!ü;.:.: f1t '.
m..mWFJ771- W-Ki-ma) I I > VfimanHi i > :■ > , 'fcniiiiin.-/; i I i '~if:WW:t ■ .■' ,' YMU/ili; I,' $:\nr.!::!t ; ,- I I VlUplll-'n '. .' J3-"Ay'U I = : .' /
'lit pill' / I > < iii.'i i-1 ■ .' ;■ / pr.U.'i / } :■
U'MUi!/ ,-■• ^Hri'-i <■•' t—^—
Hl f ; i! < i ■: t
■ I I I I : 1 f
I ! > I i ;■ ...Li ! i i i :• .' v.ufsstvt i r .' :■ &-{#:'• ■ i ■•
., IKV.pXi'v.N.-.-*: ( liJ.rt't"l,.V-.*> V *•'• !
miiti^i \ M \\ ■■.:■ «111»'.-.' I t'•■• >. ". '-
«;:-.r, i 01 f; t •) V V ^ '•'' "■''l\\t V '4 V
■■?.S.V:<M'V->> iiY f. •■-■
•E"1,.V- ';'• -
\\\\- ! :■.•-. -a
', ) •■. \ rl Yi W:\v3 ■, \ ■. ; \ \ ; I •.•-•- IV- ,,
•. \ ': I | i : \V,\W«S i: •>. i \ i », Sro,l.'iV;".W8 : ; I : :, '. 1 •. I ■.:;:n;-£
'; \ 1 •. ; ■•* HMMIVA ; > S ', ', ( iu\ii>--
\ \ > ; •. i'. |i|lV! :. •: S • ■: \\V:\ V, ... V '-'■■•'■ >• ■ • = : > 11"..
'. \ \ i '.;- ! i\\N!l«"-
. I '
■;■ > ummM ■: .v / Xjt.'/lmMm
/ /iff •••• .V.,',/«^ffi|
. v\; intuliS. v» 6'?;WiiIhm
■ ■.--■'yvmm ■ - .■■■: .'-"ifVimV;
.?■ .< .r-.i/VittKi. ^ /,'/PUvrw III
•■■• -' '■ >'';/>/'■
.-' r -f .! K;-ii7ffi
ay.'--"-■*•■■>''■ ■
•J v .1 I'Vi. i II ■! t>~fl! I !> '.' } ''11
..';■ .:i f; p ':•£}! •-. :: :; I ( 1; t;<
•;. tc > t r FJII
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 120
n000008.sprd.rgb.edt.ply Seat Height Range
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 121
n000008.sprd.rgb.edt.ply
Neck Height Range
..*>•' • v-x- «* /^r \,
^ X
.<■
f ',:
\ Jt
v-4 £'-.
fti:!i i fl.: J .V.i v.-y-x /.-.»: \r,: W.\\
■' l" ^« . V .'V-'-
1 a1 •
ff&7
m US' \s.:'
ill X .■ft -^ i ;>V ,..J''-'-?/ ( 1 :'.(A.
•.s *'•'•■'/' f ' I ••^>*^. , . if^*" '.''' '/''.' 1 \ \\-':'~:T"^
t ,:/■;;,"•'" ..• '"* / ; v '■,'■*. " .' ,%. '-■'V" ■ ■
•• -A. .-A .'.*■ ...' _.-•*_
-"■ '...■■'' .'-*-".-. V'■:*•'."'-y
..»-*".■ * . /■ ■ ,•*" ' ''.:■■ ■"•l-'/r- ^;;.;-;.",■■ •••'"'■ •••:.".-;:'^->
'''%^ Point To Point Line •<%,
f// ill in
Hi iff> \ '.—3
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 122
n0000Q8.sprd.rgb.edt.ply
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 123
n000008.sprd.rgb.edt.ply
Crotch Height Range
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 124
n000008.sprd.rgb.edt.ply Waist To Floor
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 125
n000009.sprd.rgb.edt.ply Chest Height Range Chest = 32.697" (830.496 ply units)
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 126
n000009.sprd.rgb.edt.ply Waist To Floor
T^fcs:
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 127
n000009.sprd.rgb.edt.ply Waist Evaluations
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 128
n000009.sprd.rgb.edt.ply Waist Height Range Waist = 27.037 " (707.047 ply units
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 129
.&>
.-. *••:>•!.;:•'••?■.
*--v-:'.-vj--.--r
''^i-.'.;-;':.:;v^..
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 130
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 131
Seat Height Range
..'; iJ.'.V.V.'.A ',<.••. • •i}l\',t;-:t-;t-,-.'■,- .-■
_.'/.iJ.'JIV,V,\\:. ! ,1 /
■■■MMO-Y;-;//;/.',-,--,'S.' . ;;»j:'.V.>\\'l\\;l I !>■■'■/*
JSWrlV-V-ViV-i? );////.■ nr:iU:i;t:l:.''''.'.'/-:li>f / .■' vsaI!:I-:: Uit.'Jfu.'nt't ; .- . ICulll ■ -.1; -I ■ I ■: ■ ■ ■; I :. I • i ! f • ! ? ,' ,-• ^•"^^«••AV^;>,•;/;! ;: t TB-»S;-.'-,\V:V.VlX::li!!f:-r.= .' j .; /
■^.•.■^■vO-Mi'vf1-1.,^',' / •'
,l"-.;W:.:.'.Uii'y).:/!' ? .' WXv.'vnVlli:-: I) ;7/ ? ? /
"liViüniVrJdü^U I I ! "'samixiiiiii; ' /
'-'■ Mi1. ViV\\V:^"#
'; \ \ \ '; 1 1 • 1 > ifsV.Vi'K •» ' l. ."■ \ > 1 •:»)!:■ Hi HI1.?. \ \ ■ •-. I •: ■ :\l j": I;-lire ; < «. 1 i :• i ! !.M:i-:i!V.-Vl V •: : M i I i MV;iiV;|!>ia ; •: (üiih • ■ IUS;DIII| ■\ > I'tHiiii:tiiv.;urJ
-y-*-
. i ; \ i ■ ■: • 11
ii!.i"fS i •.:;:!
I '..',<! i \ ; v ■ -. ', i ■: f;|:- ■-. >. ■ | 11 I'.-u-r;-,
, i 4-44*4
=SEI 1 i"; ] f ' >
;i\'U'Xi I ' 1 '. . .nliVi'^i^.'A "; " v
tehu <. gi'i'iUXV.'-.V.i, •, v -;
>Jt\\\\\\!iVi\ I'-.S
1111 i ■:, -l/A
,i:lf.l nV *v.\v,y. -.; v. \ gUT-UVit* V > fefciV.;"*'* \ V :'•
at-.vV'Vi t > j
. .. .^v; •i "-. . > •vsV-Vt;:,"^-jC" J ■..',--:t:-V-?^r4--;.':ft*
. -v - -7 •; i.-.-j••; -rsrafej» i) i'li UOlii^lril v i-iii r;?Wiiw I! \i\>\\\-,i}>~M
;• .■■•■•■ i dsitrU"
\ .•<. •-: ■ Mail's
..■■•i J Vfl«« >,.■■>,-.ai (
.-■ > L--;-.--;'«.
:f. .- v•:/l-'Vi^'l
>' > v/^vV^
■ s r^m A,'l:'J.jlJl
i X < :i»Ai;;vf
1
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 132
n000009.sprd.rgb.edt.ply Seat Height Range
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 133
n000009.sprd.rgb.edt.ply
Neck Height Range
Jf.'" .-•:■••>'. ir-■.>■.':;
•':> : -. ;■ { / / '• "'■. Y f ■: . " ,vi r I v .-> > ) i •; •■'
V?V:. <' 1 \ :i M M vil'ilt 1 IV'S'li i'-v "^ J.y: I '-, ] .} ,-! /i.>^ ''.) !V' ? 1 '•;■' / p>* >
i .11 ■,«•-, '■. '£ / /.^Hs' v.--0\ \\\\! ■- f - >n\ - ;\\V>- ■- ■ -Jf'//
'A \ ••.;'."/> •\ \ V; <■.■■ sV//7 rt ; U '"- /:;// >i i- -rl ;"// U'// ...-. WiU 11/// / \ UJW &// / % lit:-;-
...,^A: ■-•■■.:1 >-'■.•■:■■■' ••-••;••'.'' J '■■•■-!?V,
- -■/ / \'v-:s^. .,.<::'::':'.'-'-"'.'-' " .. - -..-■ / '. \\ '•-•>:: ••vfc
.vv'.-> ' ... ,r ,.-■' .- v \ .,"■•■•• ■•■":>t'*:..4
jp-y .■> ..-• - •••••;■--'-"i^
Point To Point Line /' jf/ / / .■■"'
fers .■■ - " • : \
xf ,jf \\
J7 ■'•■■'■ "% /.' \ %
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 134
n000009.sprd.rgb.edt.ply
ii%
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 135
n000009.sprd.rgb.edt.ply Crotch Height Range
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 136
n000009.sprd.rgb.edt.ply Waist To Floor
10 Measurement Extraction Algorithms
10.1 General Human Measurements
float HumanMeasurements::CalcAcromialHeight() { #if LOGMETHODS
cout « "HumanMeasurements::CalcAcromialHeight" « endl; #endif
float retVal = 0.0;
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 137
if (pModel) {
// At 82% of a person's height, estimate based upon Ansur data
retVal = pModel->bounds.pmin.z + ( GetHeightO * (float)0.82 );
}
return retVal; }
#if 0
float HumanMeasurements::CalcChestCircumference() { #if LOGMETHODS
cout « "HumanMeasurements::CalcChestCircumference" << endl; #endif
float retVal = 0.0;
if ( pModel ) {
ams_base_type height = GetHeight(); ams_base_type startHeight = pModel->bounds.pmin.z + (height * chestBottom); ams_base_type stopHeight = pModel->bounds.pmin.z + (height * chestTop);
AMSTypes::xlistvec_type rv; //AMSTypes::xlistvec_type xPts( 1 );
ams_base_type yPos; ams_base_type minX = pModel->bounds.pmax.x; // largest and work backwards ams_base_type maxX = pModel->bounds.pmin.x; // smallest and work forwards
for ( yPos = pModel->bounds.centroid.y; yPos <= pModel->bounds.centroid.y + (float) (25.4 * 10.); yPos += (float) (25.4 * .25)
) {
pModel->findYSlice( yPos, rv );
int i; xlist_type::const_iterator it;
for ( i = 0; i < rv.size(); i++ ) { xlist_type & ptList = rv[i]; for ( it = ptList.begin () ; it != ptList.end() ; it + + ) {
if ( ( (*it).pt.y >= startHeight ) && ( (*it).pt.y <= stopHeight )
) {
if ( (*it).pt.x < minX ) {
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 138
minX = (*it).pt.x; chestHeight = (*it).pt.y;
}
//if ( (*it).pt.x > maxX ) { // maxX = (*it).pt.x; // seatHeight = (*it).pt.y; //}
} }
}
AMSTypes::plane_type plane( AMSTypes::vector_type( 0, 0, 1 ),
AMSTypes::point_type( 0, 0, chestHeight ) ) ;
// convex hulls
pModel->doConvexHullIntersection( plane, rv );
// make a vector with 1 xlist in it AMSTypes::xlistvec_type x( 1 );
// find the hull using chest hull to eliminate the arms pModel->findChestHull( rv, x[0] );
retVal = GetCircumference( x[0] );
}
return retVal; }
#else // hold for new algorithm above
float HumanMeasurements::CalcChestCircumference() { #if LOGMETHODS
cout « "HumanMeasurements::CalcChestCircumference" « endl; #endif
float retVal = 0.0;
if (pModel) {
ams_base_type height = GetHeight();
// The average chest height is 72% of the overall height // of the subject. Calculations based upon the 1988 ANSUR survey.
// Based upon traditional tailoring chest height estimates, it // should be .71875 (i.e., 5.75 / 8 )
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 139
float curCirc = 0.0;
//float pcntHeight = (float)0.718; float pcntHeight = chestBottom;
bool done = false; while ( !done ) {
ams_base_type ch = pModel->bounds.pmin.z + (height * pcntHeight); pcntHeight += (float)0.005;
AMSTypes::plane_type plane ( AMSTypes::vector_type( 0, 0, 1 ),
AMSTypes::point_type( 0, 0, ch ) );
// convex hulls
AMSTypes::xlistvec_type rv;
pModel->doConvexHullIntersection( plane, rv );
// make a vector with 1 xlist in it AMSTypes::xlistvec_type x( 1 );
// find the chest hull eliminating the arms pModel->findChestHull( rv, x[0] );
curCirc = GetCircumference( x[0] );
if ( retVal <= curCirc ) {
retVal = curCirc; chestHeight = ch;
}
if ( pcntHeight > chestTop ) { done = true;
return retVal; } #endif
float HumanMeasurements::CalcChestHeight()
{ #if LOGMETHODS
cout « "HumanMeasurements::CalcChestHeight" << endl; #endif
float retVal = 0.0;
if ( pModel ) {
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 140
// chestHeight is set in the CalcChestCircumference routine // use Get in case the value has already been set // chestCircumference = GetChestCircumference(); retVal = chestHeight;
}
return retVal;
float HumanMeasurements::CalcCrotchHeight() { #if LOGMETHODS
cout « "HumanMeasurements::CalcCrotchHeight" « endl; #endif
float retVal = 0.0;
if ( pModel ) {
// Based upon the 1988 Ansur survey, the average crotch height // ranges between 46.8% and 48.4% of the overall height // of the subject.
// Based upon traditional tailoring crotch height estimates, it // should be between 45.3125% (i.e., 3.625 / 8 ) and // 48.4375% (i.e., 3.875 / 8)-
ams_base_type height = GetHeightO;
float pcntHeight = crotchBottom;
bool done = false; while ( !done ) {
ams_base_type ch = pModel->bounds.pmin.z + (height * pcntHeight); pcntHeight += (float)0.0025;
AMSTypes::plane_type plane( AMSTypes::vector_type( 0, 0, 1 ),
AMSTypes::point_type( 0, 0, ch ) );
// convex hulls
AMSTypes::xlistvec_type rv;
pModel->doConvexHullIntersection( plane, rv );
// throw out any "short" lists (arms/fingers/small shadows) // count the major list segments remaining
int numMajorLists = 0;
for ( int i = 0 ; i < rv.size() ; i++ ) {
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 141
if ( xlist_ops::length( rv[ i ] ) > 152.4 ) { // 6" numMajorLists++;
}
crotchHeight = ch; if ( 1 == numMajorLists
done = true; }
if ( pcntHeight > crotchTop ) { done = true;
}
retVal = crotchHeight;
}
return retVal;
float HumanMeasurements::CalcHeight() { #if LOGMETHODS
cout << "HumanMeasurements::CalcHeight" << endl; #endif
float retVal = 0.0;
// The highest most "z" point - the lowest "z" point // of the connected model.
retVal = ( pModel->bounds.pmax.z - pModel->bounds.pmin.z );
return retVal;
float HumanMeasurements::CalcNeckCircumference()
{ #if LOGMETHODS
cout « "HumanMeasurements::CalcNeckCircumference" « endl; #endif
float retVal = 0.0;
if (pModel) {
ams_base_type height = GetHeight();
// The average neck height is between 85.6% and 86% of the overall height // of the subject. Calculations based upon the 1988 ANSUR survey.
// Based upon traditional tailoring neck height estimates, it
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 142
// should be between 84.375% (i.e., 6.75 / 8 ) and 87.5% (i.e., 7 / 8 ;
// The algorithm will ranges between 85.4% and 86.2%
float curCirc = 0.0;
float pcntHeight = neckBottom;
bool done = false; while ( !done ) {
ams_base_type nh = pModel->bounds.pmin.z + (height * pcntHeight); pcntHeight += (float)0.002;
AMSTypes::plane_type plane( AMSTypes::vector_type( 0, 0, 1 ),
AMSTypes::point_type( 0, 0, nh ) );
// convex hulls
AMSTypes::xlistvec_type rv;
pModel->doConvexHullIntersection( plane, rv );
// make a vector with 1 xlist in it AMSTypes::xlistvec_type x( 1 );
// find the major hull!!! pModel->findMajorHull( rv, x[0] );
curCirc = GetCircumference( x[0] );
if ( ( 0.0 == retVal ) I I ( retVal > curCirc ) ) {
retVal = curCirc; neckHeight = nh;
}
if ( pcntHeight > neckTop ) { done = true;
} }
}
return retVal;
float HumanMeasurements::CalcNeckHeight() { #if LOGMETHODS
cout « "HumanMeasurements::CalcNeckHeight" « endl; #endif
float retVal = 0.0;
if ( pModel ) {
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 143
// neckHeight is calc'd in neckCircumference // neckCircumference = GetNeckCircumference();
retVal = neckHeight; }
return retVal;
float HumanMeasurements::CalcOverarmCircumference() { #if LOGMETHODS
cout << "HumanMeasurements::CalcOverarmCircumference" << endl; #endif
float retVal = 0.0;
ams_base_type oh = GetChestHeight();
AMSTypes::plane_type planet AMSTypes::vector_type( 0, 0, 1 ),
AMSTypes::point_type( 0, 0, oh ) );
// convex hulls
AMSTypes::xlistvec_type rv;
pModel->doConvexHullIntersection( plane, rv );
// make a vector with 1 xlist in it AMSTypes::xlistvec_type x( 1 );
// find the major hull!!! pModel->findMajorHull( rv, x[0] );
retVal = GetCircumference( x[0] );
return retVal;
float HumanMeasurements::CalcPointToPoint() { #if LOGMETHODS
cout << "HumanMeasurements::CalcPointToPoint" « endl; #endif
float retVal = 0.0;
if (pModel) {
// Assumes ptpHeight is one inch down from acromial height. // There is no equivalent measurement in the Ansur data, and // there is no typical tailoring height level. Point to point // is determined by feel. Roughly, it is the upper most point
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 144
// on the outside of the shoulder.
ams_base_type ptpHeight = GetAcromialHeight() - 25.4;
AMSTypes::plane_type plane( AMSTypes::vector_type( 0, 0, 1 )
AMSTypes::point_type( 0, 0, ptpHeight ) );
// convex hulls
AMSTypes::xlistvec_type rv;
pModel->doConvexHullIntersection( plane, rv ) ;
// make a vector with 1 xlist in it AMSTypes::xlistvec_type x( 1 );
// find the major hull!!! pModel->findMajorHull( rv, x[0] ) ;
pointToPointHeight = ptpHeight;
retVal = ( GetCircumference( x[0] ) / 2 );
}
return retVal;
float HumanMeasurements::CalcPointToPointHeight() { #if LOGMETHODS
cout « "HumanMeasurements::CalcPointToPointHeight" « endl; #endif
float retVal = 0.0;
if ( pModel ) {
// pointToPointHeight is calc'd in CalcPointToPoint // pointToPoint = GetPointToPoint();
retVal = pointToPointHeight; }
return retVal;
float HumanMeasurements::CalcSeatCircumference()
{ #if LOGMETHODS
cout « "HumanMeasurements::CalcSeatCircumference" « endl;
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 145
#endif float retVal = 0.0;
if ( pModel ) {
ams_base_type height = GetHeight(); ams_base_type startHeight = pModel->bounds.pmin.z + (height * seatBottom); ams_base_type stopHeight = pModel->bounds.pmin.z + (height * seatTop);
AMSTypes::xlistvec_type rv; //AMSTypes::xlistvec_type xPts( 1 );
ams_base_type yPos; ams_base_type minX =0.; ams_base_type maxX = 0.;
for ( yPos = pModel->bounds.centroid.y; yPos <= pModel->bounds.centroid.y + (float) (25.4 * 8.); yPos += (float) (25.4 * .25)
) {
pModel->findYSlice( yPos, rv );
int i ; xlist_type::const_iterator it;
for ( i = 0; i < rv.size(); i++ ) { xlist_type & ptList = rv[i]; for ( it = ptList.begin() ; it != ptList.end() ; it++ ) {
if ( ( (*it).pt.y >= startHeight ) && ( (*it).pt.y <= stopHeight )
) {
//if ( (*it).pt.x < minX ) minX = (*it).pt.x;
if ( (*it).pt.x > maxX ) {
maxX = (*it).pt.x; seatHeight = (*it).pt.y;
maxSeatPoint.x = (*it).pt.x; maxSeatPoint.y = yPos; maxSeatPoint.z = (*it).pt.y;
}
AMSTypes::plane_type plane( AMSTypes::vector_type( 0, 0, 1
AMSTypes::point_type( 0, 0, seatHeight ) );
// convex hulls
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 146
pModel->doConvexHullIntersection( plane, rv ) ;
// make a vector with 1 xlist in it AMSTypes::xlistvec_type x( 1 );
if ( 1 == rv.size() ) { pModel->findMajorHull( rv, x[0] );
} else {
// find the hull using chest hull to eliminate the arms pModel->findChestHull( rv, x[0] ) ;
}
retVal = GetCircumference( x[0] );
}
return retVal;
#if 0 // hold for new algorithm above
float HumanMeasurements::CalcSeatCircumference() { #if LOGMETHODS
cout « "HumanMeasurements::CalcSeatCircumference" « endl; #endif
float retVal = 0.0;
if ( pModel ) {
{ // now the cut with convex hull and majorHull routines
ams_base_type height = GetHeight();
// The average seat height is between 49% and 55% of the overall height // of the subject. Calculations based upon the 1988 ANSUR survey.
// For the traditional tailoring approach, the seat height is located // at 53.125% (.4.25 / 8) of the subject's height.
float curCirc = 0.0; float curMaxX = 0.0; float maxX =0.0;
//float pcntHeight = (float)0.49; float pcntHeight = seatBottom;
bool done = false; while ( !done ) {
ams_base_type sh = pModel->bounds.pmin.z + (height * pcntHeight); pcntHeight += (float)0.005;
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 147
#if 0
#else
endl ;
#endif
AMSTypes::plane_type planet AMSTypes::vector_type( 0, 0, 1 ),
AMSTypes::point_type( 0, 0, sh ) );
// convex hulls
AMSTypes::xlistvec_type rv;
pModel->doConvexHullIntersection( plane, rv );
// make a vector with 1 xlist in it AMSTypes::xlistvec_type x( 1 );
// find the hull using chest hull to eliminate the arms pModel->findChestHull( rv, x[0] );
curCirc = GetCircumference( x[0] );
if (retVal ==0.0) { // first pass through loop retVal = curCirc;
}
if ( retVal <= curCirc ) {
retVal = curCirc; seatHeight = sh;
}
curMaxX = GetMaxXValue( x[0] );
cout « "curMaxX = " << curMaxX « " maxX = " << maxX << endl;
if ( (retVal == 0.0) || ( curMaxX >= maxX ) ) { maxX = curMaxX; curCirc = GetCircumference( x[0] );
}
cout « "retVal = " « retVal « " curCirc = " « curCirc «
if ( retVal <= curCirc ) { retVal = curCirc; seatHeight = sh;
}
if ( pcntHeight > seatTop ) { done = true;
}
}
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 148
return retVal; } tendif
float HumanMeasurements::CalcSeatHeight() { #if LOGMETHODS
cout « "HumanMeasurements::CalcSeatHeight" « endl; tendif
float retVal = 0.0;
if ( pModel ) {
// seatHeight is calc'd in seatCircumference // seatCircumference = GetSeatCircumference();
retVal = seatHeight; }
return retVal;
float HumanMeasurements::CalcShoulderCircumference() { #if LOGMETHODS
cout « "HumanMeasurements::CalcShoulderCircumference" << endl; tendif
float retVal = 0.0;
shoulderHeight = GetPointToPointHeight() - (25.4 * .75);
AMSTypes::plane_type plane( AMSTypes::vector_type( 0, 0, 1 ),
AMSTypes::point_type( 0, 0, shoulderHeight ) );
// convex hulls
AMSTypes::xlistvec_type rv;
pModel->doConvexHullIntersection( plane, rv );
// make a vector with 1 xlist in it AMSTypes::xlistvec_type x( 1 ) ;
// find the major hull!!! pModel->findMajorHull( rv, x[0] );
retVal = GetCircumference( x[0] );
return retVal; }
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 149
float HumanMeasurements::CalcShoulderHeight() { #if LOGMETHODS
cout << "HumanMeasurements::CalcShoulderHeight" << endl; #endif
float retVal = 0.0;
if ( pModel ) {
// pointToPointHeight is calc'd in CalcShoulderCircumference // shoulderCircumference = GetShoulderCircumference() ;
retVal = shoulderHeight;
return retVal;
float HumanMeasurements::CalcWaistCircumference() { #if LOGMETHODS
cout << "HumanMeasurements::CalcWaistCircumference" << endl; #endif
float retVal = 0.0;
if ( pModel ) {
{
);
height
is
ams_base_type height = ( pModel->bounds.pmax.z - pModel->bounds.pmin.z
// The average waist height is between 59% and 61% of the overall
// of the subject. Calculations based upon the 1988 ANSUR survey.
// Based upon traditional tailoring methods, the average waist height
// located at 59.375% (4.75 / 8) of the subject's height.
float curCirc = 0.0;
//float pcntHeight = (float)0.59; float pcntHeight = waistBottom;
bool done = false; while ( Idone ) {
ams_base_type wh = pModel->bounds.pmin.z + (height * pcntHeight); pcntHeight += (float)0.005;
AMSTypes::plane_type plane( AMSTypes::vector_type( 0, 0, 1 ),
AMSTypes::point type( 0, 0, wh ) );
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 150
// convex hulls
AMSTypes::xlistvec_type rv;
pModel->doConvexHullIntersection( plane, rv )
// make a vector with 1 xlist in it AMSTypes::xlistvec_type x( 1 );
// find the major hull!!! pModel->findChestHull( rv, x[0] ) ;
curCirc = GetCircumference( x[0] );
if (retVal == 0.0) retVal = curCirc;
if ( curCirc <= retVal ) {
retVal = curCirc; waistHeight = wh;
} //else { // done = true; //}
if ( pcntHeight > waistTop ) { done = true;
} }
}
}
return retVal;
float HumanMeasurements::CalcWaistHeight() { #if LOGMETHODS
cout « "HumanMeasurements::CalcWaistHeight" « endl; #endif
float retVal = 0.0;
if ( pModel ) {
// waistHeight is set in determining waist circ.
waistCircumference = GetWaistCircumference(); retVal = waistHeight;
}
return retVal;
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 151
float HumanMeasurements::CalcWaistHeightBack() { #if LOGMETHODS
cout « "HumanMeasurements::CalcWaistHeightBack" << endl; #endif
float retVal = 0.0;
if ( pModel ) {
// Waist height back is based upon the waist to floor // drop from the back of the pants. Typically, the // measurement is taken in the center of the back of a // person wearing pants. Because they are wearing pants // the cloth of the pants form a convex hull at the // maximum protrusion of the buttocks. The tape measure // follows the curve of the buttocks to the maximum point // of protrusion then drops straight to the floor.
// To match this measurement, we will need to take a slice // through the left or right buttock, follow the curve from // the waist height (retaining curve length) to its maximum // protrusion then calculate straight line floor drop
#if 0
#else
// length.
// Currently, we are doing a straight line drop from the // waist height to the floor. It does not take into // account the curvature of the buttock.
retVal = GetWaistHeight() - pModel->bounds.pmin.z;
AMSTypes::xlistvec_type rv; AMSTypes::xlistvec_type yPts( 1 );
ams_base_type wh = GetWaistHeight(); // waistHeight ams_base_type sh = GetSeatHeight(); // seatHeight
pModel->findYSlice( maxSeatPoint.y, rv );
int i; xlist_type::iterator it;
for ( i = 0; i < rv.sizeO; i++ ) { xlist_type & ptList = rv[i]; for ( it = ptList.begin() ; it != ptList.end() ; it++ ) {
if ( ( (*it).pt.y <= wh ) && ( (*it).pt.y >= sh ) &&
( (*it).pt.x >= pModel->bounds.centroid.x ; ) {
yPts[0].push_back( *it );
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 152
}
ams_base_type waistToSeat = (xlist_ops::length( yPts[0], false ) 12); ams_base_type seatToFloor = AbsHeight( sh );
retVal = (waistToSeat + seatToFloor);
#endif }
return retVal;
float HumanMeasurements::CalcWaistHeightFront() { #if LOGMETHODS
cout « "HumanMeasurements::CalcWaistHeightFront" « endl; #endif
float retVal = 0.0;
if ( pModel ) {
retVal = GetWaistHeight() - pModel->bounds.pmin.z; }
return retVal;
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 153
10.2 Coat Specific Algorithms
float CoatMeasurements::CalcChest() {
float retVal = 0.0;
retVal = hm->GetChestCircumference();
return retVal;
float CoatMeasurements::CalcHeight() {
float retVal = 0.0;
retVal = hm->GetHeight();
return retVal; }
float CoatMeasurements::CalcNeck() {
float retVal = 0.0;
retVal = hm->GetNeckCircumference();
return retVal; }
string CoatMeasurements::CalcNeckDescription() {
string retVal = "";
return retVal; }
float CoatMeasurements::CalcOverarm() {
float retVal = 0.0;
retVal = hm->GetOverarmCircumference();
return retVal; }
float CoatMeasurements::CalcPointToPoint () {
float retVal = 0.0;
retVal = hm->GetPointToPoint();
return retVal; }
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 154
float CoatMeasurements::CalcPosture() {
float retVal = 0.0; return retVal;
}
string CoatMeasurements::CalcPostureDescriptioni {
string retVal = ""; return retVal;
float CoatMeasurements::CalcSeat() {
float retVal = 0.0;
retVal = hm->GetSeatCircumference();
return retVal;
string CoatMeasurements::CalcSeatDescription() {
string retVal = ""; return retVal;
}
string CoatMeasurements::CalcShoulderAngleDescription() {
string retVal = "";
float delta = hm->AsInches( GetShoulderRight() );
// ' measurement to determine the correct shoulder code // ' // ' 0.0 to 0.875 => extreme high ==> shoulder code = D // ' 1.0 to 1.375 => high ==> shoulder code = C // ' 1.5 to 1.625 => half high ==> shoulder code = B // ' 1.75 to 2.375 => regular ==> shoulder code = A // ' 2.5 to 2.875 => half sloping ==> shoulder code = E // ' 3.0 to 3.375 => full sloping ==> shoulder code = F
if ( delta >= 3.0 ) { retVal = "Full Sloping Shoulders"; }
else if ( delta >= 2.5 ) { retVal = "Half Sloping Shoulders"; }
else if ( delta >= 1.75 ) { retVal = "Regular Shoulders"; }
else if ( delta >= 1.5 ) { retVal = "Half High Shoulders"; }
else if ( delta >= 1.0 ) { retVal = "High Shoulders";
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 155
else { retVal = "Extreme High Shoulders"; }
return retVal; }
string CoatMeasurements::CalcShoulderBuildDescription() {
string retVal = ""; return retVal;
}
float CoatMeasurements::CalcShoulderLeft() {
float retVal = 0.0;
float neckHeight = hm->GetNeckHeight(); float ptpHeight = hm->GetPointToPointHeight();
retVal = neckHeight - ptpHeight;
return retVal; }
string CoatMeasurements::CalcShoulderPitch() {
string retVal = ""; return retVal;
float CoatMeasurements::CalcShoulderRight() {
float retVal = 0.0;
float neckHeight = hm->GetNeckHeight(); float ptpHeight = hm->GetPointToPointHeight();
retVal = neckHeight - ptpHeight;
return retVal; }
float CoatMeasurements::CalcSleevelnseamLeft() {
float retVal = 0.0; return retVal;
float CoatMeasurements::CalcSleevelnseamRight()
float retVal = 0.0; return retVal;
float CoatMeasurements::CalcSleeveOutseamLeft()
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 156
{
float retVal = 0.0; return retVal;
}
float CoatMeasurements::CalcSleeveOutseamRight() {
float retVal =0.0; ■ return retVal;
}
float CoatMeasurements::CalcWaist() { .
float retVal = 0.0;
retVal = hm->GetWaistCircumference() ;
return retVal;
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 157
10.3 Pant Specific Algorithms
float PantMeasurements::CalcAbdomen() {
float retVal = 0.0; return retVal;
}
float PantMeasurements::CalcCalfLeft() {
float retVal = 0.0; return retVal;
float PantMeasurements::CalcCalfRight() {
float retVal = 0.0; return retVal;
}
float PantMeasurements: : CaldnseamLef t () {
float retVal = 0.0;
retVal = mm->AbsHeight(mm->GetCrotchHeight());
return retVal; }
float PantMeasurements::CalcInseamRight() {
float retVal = 0.0;
retVal = mm->AbsHeight(mm->GetCrotchHeight());
return retVal;
}
float PantMeasurements::CalcKneeLeft() {
float retVal = 0.0; return retVal;
}
float PantMeasurements::CalcKneeRight() {
float retVal = 0.0; return retVal;
}
float PantMeasurements::CalcOutseamLeft() {
float retVal = 0.0;
retVal = mm->AbsHeight( mm->GetWaistHeight() );
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 158
return retVal; }
float PantMeasurements::CalcOutseamRight() {
float retVal = 0.0;
retVal = mm->AbsHeight( mm->GetWaistHeight() );
return retVal; }
float PantMeasurements::CalcRise() {
float retVal = 0.0;
retVal = GetOutseamRight() - GetlnseamRight();
return retVal; }
string PantMeasurements::CalcRiseDescription() {
string retVal = ""; return retVal;
}
float PantMeasurements::CalcSeat () {
float retVal = 0.0;
retVal = mm->GetSeatCircumference();
return retVal; }
string PantMeasurements::CalcSeatDescription() {
string retVal = ""; return retVal;
}
float PantMeasurements::CalcThighLeft() {
float retVal = 0.0; return retVal;
}
float PantMeasurements::CalcThighRight() {
float retVal = 0.0; return retVal;
}
float PantMeasurements::CalcWaist()
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 159
{
float retVal = 0.0;
retVal = mm->GetWaistCircumference();
return retVal; }
float PantMeasurements::CalcWaistHeightBack() {
float retVal = 0.0;
retVal = mm->GetWaistHeightBack();
return retVal; }
float PantMeasurements::CalcWaistHeightFront() {
float retVal = 0.0;
retVal = mm->GetWaistHeightFront();
return retVal;
Haas Tailoring Company DDFG T2-P5 Year 1 Final Report
Page 160