MeshKit  1.0
AF2DfltTriangleRules.hpp
Go to the documentation of this file.
00001 /*
00002  * AF2DfltTriangleRules.hpp
00003  *
00004  * \brief An AF2DfltTriangleRules defines a default set of rules to
00005  * use for a two-dimensional advancing front triangle-meshing algorithm.
00006  *
00007  * Constructing an instance of AF2DfltTriangleRules constructs all of
00008  * associated default rules.  The AF2DfltTriangleRules retains ownership
00009  * of the rule objects until it is deleted, so if any subset of the rules
00010  * from an instance of AF2DfltTriangleRules are used in an AF2Algorithm,
00011  * the context should ensure that the instance of AF2DfltTriangleRules
00012  * remains in memory.
00013  */
00014 
00015 #ifndef AF2DFLTTRIANGLERULES
00016 #define AF2DFLTTRIANGLERULES
00017 
00018 // C++
00019 #include <list>
00020 
00021 // MeshKit
00022 #include "meshkit/AF2PntTrnsfrmLnrV.hpp"
00023 #include "meshkit/AF2Rule.hpp"
00024 
00025 class AF2DfltTriangleRules
00026 {
00027   private:
00028 
00029     std::list<const AF2Rule*> ruleList;
00030 
00031     const AF2Rule* make180DegreeRuleQ1() const;
00032     const AF2Rule* make180DegreeRuleQ5() const;
00033     const AF2Rule* make180DegreeRuleQ10() const;
00034     const AF2Rule* make180DegreeRuleQ20() const;
00035     const AF2Rule* make60DegreeAngleRightRule() const;
00036     const AF2Rule* make60DegreeAngleLeftRule() const;
00037     const AF2Rule* make120DegreeAngleRightRule() const;
00038     const AF2Rule* make120DegreeAngleLeftRule() const;
00039     const AF2Rule* make120DegreeAngleBothRule() const;
00040     const AF2Rule* makeFillTriangleRule() const;
00041     const AF2Rule* makeConnectVertexRule() const;
00042     const AF2Rule* makeConnectEdgeRule() const;
00043 
00063     AF2PntTrnsfrmLnrV* makeLinearTransformX(
00064         const AF2RuleExistVertex* ruleExVert, double xCoeff) const;
00065 
00081     AF2PntTrnsfrmLnrV* makeTranslation(
00082         const AF2RuleExistVertex* ruleExVert) const;
00083 
00084   public:
00085 
00089     AF2DfltTriangleRules();
00090 
00094     ~AF2DfltTriangleRules();
00095 
00102     AF2DfltTriangleRules(const AF2DfltTriangleRules & toCopy);
00103 
00110     AF2DfltTriangleRules& operator=(const AF2DfltTriangleRules & rhs);
00111 
00123     std::list<const AF2Rule*> getRules() const;
00124 };
00125 
00126 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines