--- trunk/src/applications/hydrodynamics/ShapeBuilder.cpp 2006/03/17 23:20:35 906 +++ trunk/src/applications/hydrodynamics/ShapeBuilder.cpp 2006/03/21 00:26:55 909 @@ -47,9 +47,9 @@ Shape* ShapeBuilder::createShape(StuntDouble* sd) { Shape* ShapeBuilder::createShape(StuntDouble* sd) { Shape* currShape = NULL; if (sd->isDirectionalAtom()) { - currShape = internalCreateShape(static_cast(sd)); + currShape = internalCreateShape(static_cast(sd)); } else if (sd->isAtom()) { - currShape = internalCreateShape(static_cast(sd)); + currShape = internalCreateShape(static_cast(sd)); } else if (sd->isRigidBody()) { currShape = internalCreateShape(static_cast(sd)); } @@ -97,7 +97,7 @@ Shape* ShapeBuilder::internalCreateShape(DirectionalAt if (gayBerneData != NULL) { GayBerneParam gayBerneParam = gayBerneData->getData(); - currShape = new Ellipsoid(datom->getPos(), gayBerneParam.GB_sigma, gayBerneParam.GB_l2b_ratio, datom->getA()); + currShape = new Ellipsoid(datom->getPos(), gayBerneParam.GB_sigma/2.0, gayBerneParam.GB_l2b_ratio*gayBerneParam.GB_sigma/2.0, datom->getA()); } else { sprintf( painCave.errMsg, "Can not cast GenericData to GayBerneParam\n"); @@ -111,6 +111,23 @@ Shape* ShapeBuilder::internalCreateShape(DirectionalAt painCave.isFatal = 1; simError(); } + }else if (atomType->isLennardJones()){ + GenericData* data = atomType->getPropertyByName("LennardJones"); + if (data != NULL) { + LJParamGenericData* ljData = dynamic_cast(data); + + if (ljData != NULL) { + LJParam ljParam = ljData->getData(); + currShape = new Spheric(datom->getPos(), ljParam.sigma/2.0); + } else { + sprintf( painCave.errMsg, + "Can not cast GenericData to LJParam\n"); + painCave.severity = OOPSE_ERROR; + painCave.isFatal = 1; + simError(); + } + } + } return currShape; } @@ -122,9 +139,9 @@ Shape* ShapeBuilder::internalCreateShape(RigidBody* rb for (atom = rb->beginAtom(ai); atom != NULL; atom = rb->nextAtom(ai)) { Shape* currShape = NULL; if (atom->isDirectionalAtom()){ - currShape = internalCreateShape(static_cast(atom)); + currShape = internalCreateShape(static_cast(atom)); }else if (atom->isAtom()){ - currShape = internalCreateShape(static_cast(atom)); + currShape = internalCreateShape(static_cast(atom)); } if (currShape != NULL) compositeShape->addShape(currShape);