MeshKit
1.0
|
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