Branch data Line data Source code
1 : : /*
2 : : * AF2FreeZoneDef.hpp
3 : : *
4 : : * A free zone definition is an object that can be used to define an
5 : : * AF2FreeZone based on a binding of rule reference vertices to actual
6 : : * coordinates and a level of quality, also known as a quality class,
7 : : * at which the free zone is being applied.
8 : : */
9 : :
10 : : #ifndef AF2FREEZONEDEF_HPP
11 : : #define AF2FREEZONEDEF_HPP
12 : :
13 : : // MeshKit
14 : : #include "meshkit/AF2FreeZone.hpp"
15 : : #include "meshkit/AF2Binding.hpp"
16 : :
17 : 279 : class AF2FreeZoneDef
18 : : {
19 : : public:
20 : :
21 [ - + ]: 558 : virtual ~AF2FreeZoneDef() {}
22 : :
23 : : /**
24 : : * \brief Make and return an independent copy of yourself.
25 : : *
26 : : * This method supports making copies of the concrete derived class that
27 : : * an AF2FreeZoneDef pointer references.
28 : : *
29 : : * Deletion of the object pointed to by the pointer returned from this
30 : : * method must be managed by the context that calls the method.
31 : : */
32 : : virtual AF2FreeZoneDef* clone() const = 0;
33 : :
34 : : /**
35 : : * \brief Create an AF2FreeZone based on a binding and a quality class.
36 : : *
37 : : * This method allocates the AF2FreeZone and returns a pointer to it.
38 : : * It is the responsibility of the calling context to make sure that
39 : : * the AF2FreeZone is deleted when it is no longer needed.
40 : : *
41 : : * \param vertexBinding a binding of a rule's existing vertices to
42 : : * actual points that will be used to build a free zone relative
43 : : * to the actual points
44 : : * \param qualityClass an integer strictly greater than zero
45 : : * designating the quality class of the free zone this method
46 : : * will make. Lower numbers are higher quality and may produce
47 : : * larger free zones, depending on the implementation.
48 : : */
49 : : virtual AF2FreeZone* makeFreeZone(
50 : : AF2Binding const & vertexBinding, unsigned int qualityClass) const = 0;
51 : : };
52 : :
53 : : #endif
|