home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.hitl.washington.edu
/
ftp.hitl.washington.edu.tar
/
ftp.hitl.washington.edu
/
pub
/
people
/
peter
/
ER
/
ThickObject.cxx
< prev
next >
Wrap
C/C++ Source or Header
|
1998-07-07
|
1KB
|
51 lines
/*
ThickObject.cxx
*/
#include "ThickObject.h"
ThickObject::ThickObject(v3dObject *thin_object, float thickness)
: v3dObject(), thin_object_ (thin_object)
{
initialize(thickness);
}
ThickObject::~ThickObject()
{
}
void
ThickObject::initialize(float thickness)
{
// Create a larger object around the thin object to give
// it some thickness.
v3dDim thin_obj_size = thin_object_->GetSize(), target_size;
target_size.x(thin_obj_size.x() < thickness ? thickness : thin_obj_size.x());
target_size.y(thin_obj_size.y() < thickness ? thickness : thin_obj_size.y());
target_size.z(thin_obj_size.z() < thickness ? thickness : thin_obj_size.z());
imp_->CreateBlock(target_size.x(), target_size.y(), target_size.z(),
false);
// Stick the thin object to the thick object.
v3dObject::SetAbsoluteOrientation(thin_object_->GetAbsoluteOrientation());
thin_object_->MoveAbsolute(v3dPos(0,0,0));
v3dObject::MoveAbsolute(v3dPos(0,0,0));
Add(thin_object_);
v3dObject::Hide();
}
/////////////////////
// Object scaling //
///////////////////
void
ThickObject::Scale (const v3dVector &factors, const v3dPos& point)
{
thin_object_->Scale(factors, point);
v3dObject::Scale(factors, point);
}