-// ----------------------------------------------- Inlining
-// ========================================================== addAssociation
-inline int Quad::addAssociation (Shape* forme)
-{
- if (forme != NULL)
- tab_assoc.push_back (forme);
- return HOK;
-}
-// ============================================================ getEdge
-inline Edge* Quad::getEdge (int nro)
-{
- Edge* elt = NULL;
- if (nro >=0 && nro < QUAD4 && el_status == HOK && q_edge [nro]->isValid())
- elt = q_edge [nro];
-
- return elt;
-}
-// ============================================================ getVertex
-inline Vertex* Quad::getVertex (int nro)
-{
- Vertex* elt = NULL;
- if (nro >=0 && nro < QUAD4 && el_status == HOK && q_vertex [nro]->isValid())
- elt = q_vertex [nro];
-
- return elt;
-}
-// ======================================================== commonEdge
-inline Edge* Quad::commonEdge (Quad* other)
-{
- for (int ne1=0 ; ne1<QUAD4 ; ne1++)
- for (int ne2=0 ; ne2<QUAD4 ; ne2++)
- if (q_edge [ne1] == other->q_edge [ne2])
- return q_edge [ne1];
-
- return NULL;
-}
-
-// ======================================================== Inter
-inline int Quad::inter (Quad* other, int& nother)
-{
- for (int ne1=0 ; ne1<QUAD4 ; ne1++)
- for (int ne2=0 ; ne2<QUAD4 ; ne2++)
- if (q_edge [ne1] == other->q_edge [ne2])
- {
- nother = ne2;
- return ne1;
- }
-
- nother = NOTHING;
- return NOTHING;
-}
-// ============================================================ definedBy (v)
-inline bool Quad::definedBy (Vertex* v1, Vertex* v2)
-{
- for (int n1=0 ; n1< QUAD4 ; n1++)
- if (v1 == q_vertex[n1] && v2 == q_vertex[(n1+2) MODULO QUAD4])
- return true;
-
- return false;
-}
-// ============================================================ definedBy (e)
-inline bool Quad::definedBy (Edge* e1, Edge* e2)
-{
- for (int n1=0 ; n1< QUAD4 ; n1++)
- if (e1 == q_edge[n1] && e2 == q_edge[(n1+2) MODULO QUAD4])
- return true;
-
- return false;
-}
-// =============================================================== findEdge
-inline Edge* Quad::findEdge (Vertex* v1, Vertex* v2)
-{
- for (int nro=0 ; nro< QUAD4 ; nro++)
- {
- Vertex* va = q_edge[nro]->getVertex(V_AMONT) ;
- Vertex* vb = q_edge[nro]->getVertex(V_AVAL) ;
- if ((v1==va && v2==vb) || (v1==vb && v2==va))
- return q_edge [nro];
- }
-
- return NULL;
-}
-// =============================================================== indexVertex
-inline int Quad::indexVertex (Vertex* elt)
-{
- for (int n1=0 ; n1< QUAD4 ; n1++)
- if (elt == q_vertex[n1])
- return n1;
-
- return NOTHING;
-}
-// =============================================================== indexEdge
-inline int Quad::indexEdge (Edge* elt)
-{
- for (int n1=0 ; n1< QUAD4 ; n1++)
- if (elt == q_edge[n1])
- return n1;
-
- return NOTHING;
-}
-// =============================================================== setScalar
-inline void Quad::setScalar (double val)
-{
- for (int n1=0 ; n1< QUAD4 ; n1++)
- q_vertex[n1] -> setScalar (val);
-}
-// =============================================================== duplicate
-inline void Quad::duplicate ()
-{
- q_orientation = Q_UNDEFINED;
- q_clone = new Quad (GetClone (q_edge [E_A]),
- GetClone (q_edge [E_B]),
- GetClone (q_edge [E_C]),
- GetClone (q_edge [E_D]));
- q_clone->tab_assoc = tab_assoc;
-}