Decouple MELEMENT with the variable GMODEL
Once Elements are generated, GMODEL is not really needed. Right now MELEMNT is using GModel inside it. But when we use MELEMENT's only, the executable still links in it a GModel and all its stuff that are really not needed once a mesh is produced. I think we may decouple the two so that GModel, will own only the elements it created, and in themeantime, the user might create other elements not associated with the GModel, by just supplying the nodes to ELEMENTs object. I do that to manually create some reference object in my code, however, the code still need to link into it GModel stuffs which are no more needed. SO I think GModel is the one to keep track its Elements, Or an abstract object could be used instead of GModel and GModel might inherit from that abstract object that would expose certain method/variable to the Element.
class **AbstractClass**{ void virtual getSomthing1() = 0; void virtual getSomething2 () = 0; ..... }
Triangle* tr = new Triangle(..., AbstractClass* aObject);
Then any user other than GModel could still create the Elements, And avoid the use of GModel:: current() inside the Elements and the use of GEntity(), which force the linkage of GModel