MeshKit  1.0
AF2Neighborhood.hpp
Go to the documentation of this file.
00001 /*
00002  * AF2Neighborhood.hpp
00003  *
00004  * An AF2Neighborhood represents a collection of points and edges
00005  * on the advancing front that are in the neighborhood of some specific
00006  * edge on the advancing front.  The specific edge is called the
00007  * baseline edge.  The advancing front algorithm uses an AF2Neighborhood
00008  * to assess whether it should add one or more additional faces and
00009  * perhaps also points and edges built off of the neighborhood's
00010  * baseline edge.
00011  *
00012  * The AF2Neighborhood manages conversion between an assumed
00013  * two-dimensional surface embedded in a three-dimensional
00014  * coordinate system and a local two-dimensional coordinate system
00015  * that is appropriate to the neighborhood.
00016  */
00017 #ifndef AF2NEIGHBORHOOD_HPP
00018 #define AF2NEIGHBORHOOD_HPP
00019 
00020 // C++
00021 #include <list>
00022 #include <map>
00023 
00024 // MeshKit
00025 #include "meshkit/AF2Point2D.hpp"
00026 #include "meshkit/AF2Point3D.hpp"
00027 #include "meshkit/AF2Edge2D.hpp"
00028 #include "meshkit/AF2Edge3D.hpp"
00029 #include "meshkit/AF2LocalTransform.hpp"
00030 
00031 class AF2Neighborhood
00032 {
00033   private:
00034 
00035     const AF2LocalTransform* localTransform;
00036     std::list<const AF2Point2D*> points2D;
00037     AF2Edge3D* baseEdge3D;
00038     const AF2Edge2D* baseEdge2D;
00039     std::list<const AF2Edge2D*> edges2D;
00040     std::map<AF2Point3D*, const AF2Point2D*> map3DTo2D;
00041     std::map<const AF2Point2D*, AF2Point3D*> map2DTo3D;
00042 
00043   public:
00044 
00080     AF2Neighborhood(const std::list<AF2Point3D*> & points,
00081         AF2Edge3D* baselineEdge,
00082         const std::list<const AF2Edge3D*> & otherEdges,
00083         const AF2LocalTransform* localTransformArg);
00084 
00088     ~AF2Neighborhood();
00089 
00093     AF2Neighborhood(const AF2Neighborhood & toCopy);
00094 
00098     AF2Neighborhood & operator=(const AF2Neighborhood & rhs);
00099 
00107     const AF2Edge2D* getBaselineEdge2D() const;
00108 
00115     AF2Edge3D* getBaselineEdge3D() const;
00116 
00133     AF2Point3D* getCorrespondingPoint(
00134         const AF2Point2D* const & ngbhdPoint2D) const;
00135 
00143     const std::list<const AF2Edge2D*>* getEdges2D() const;
00144 
00151     const std::list<const AF2Point2D*>* getPoints2D() const;
00152 
00173     AF2Point3D* transformPoint(const AF2Point2D* const & point2D,
00174         unsigned long const & pntId) const;
00175 };
00176 
00177 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines