Creating a new subclass, CADSurface, with empty definitions for now.

This commit is contained in:
shriwise 2018-02-22 21:13:18 -06:00 committed by pshriwise
parent 959514e8be
commit 4a43e28560
2 changed files with 38 additions and 1 deletions

View file

@ -65,7 +65,7 @@ public:
std::vector<int> neighbor_neg_; //!< List of cells on negative side
explicit Surface(pugi::xml_node surf_node);
virtual ~Surface() {}
//! Determine which side of a surface a point lies on.
@ -110,6 +110,22 @@ protected:
virtual void to_hdf5_inner(hid_t group_id) const = 0;
};
//==============================================================================
//! A `Surface` representing a CAD-based surface in DAGMC.
//==============================================================================
class CADSurface : public Surface
{
public:
explicit CADSurface(pugi::xml_node surf_node);
double evaluate(const double xyz[3]) const;
double distance(const double xyz[3], const double uvw[3],
bool coincident) const;
void normal(const double xyz[3], double uvw[3]) const;
//! Get the bounding box of this surface.
BoundingBox bounding_box() const;
};
//==============================================================================
//! A `Surface` that supports periodic boundary conditions.
//!

View file

@ -239,6 +239,27 @@ Surface::to_hdf5(hid_t group_id) const
close_group(surf_group);
}
//==============================================================================
// CADSurface implementation
//==============================================================================
CADSurface::CADSurface(pugi::xml_node surf_node) : Surface {surf_node} {} // empty constructor
double CADSurface::evaluate(const double xyz[3]) const
{
return 0.0;
}
double CADSurface::distance(const double xyz[3], const double uvw[3], bool coincident) const {
return 0.0;
}
void CADSurface::normal(const double xyz[3], double uvw[3]) const {
return;
}
BoundingBox CADSurface::bounding_box() const { return BoundingBox(); }
//==============================================================================
// PeriodicSurface implementation
//==============================================================================