const int kv_mil = cyl_left != NO_PIPE ? 2 : 3 ;
enum { k0, k1, k2, k3, k4 };
- double z0, z1, z2, z3, z4;
+ double z0, z2, z4;
z0 = big_hauteur[0] = - calcul_centre (cross_cyl2->getBase(), cross_center);
z4 = big_hauteur[4] = z0 + cross_cyl2->getHeight ();
- z1 = big_hauteur[1] = getVertexIJK (CylSmall, NxExt, S_SE, kv_mil)->getZ();
+ big_hauteur[1] = getVertexIJK (CylSmall, NxExt, S_SE, kv_mil)->getZ();
z2 = big_hauteur[2] = getVertexIJK (CylSmall, NxExt, S_E, kv_mil)->getZ();
- z3 = big_hauteur[3] = getVertexIJK (CylSmall, NxExt, S_NE, kv_mil)->getZ();
-
+ big_hauteur[3] = getVertexIJK (CylSmall, NxExt, S_NE, kv_mil)->getZ();
setVertex (CylBig, iv0, 0, k0, 0, 0, z0);
addSlice (CylBig, NxInt, k0, z0);
{
Real3 base, vec1, center, east, west, nordest;
int nk = 0;
- if (cyl==CylSmall && cyl_left == NO_PIPE)
+ if (cyl==CylSmall && cyl_left != IS_HERE)
nk = size_hz[cyl];
Vertex* v_e = getVertexIJK (cyl, NxExt, S_E , nk);
v_n->getPoint (pnt2);
double rayon = calc_distance (pnt1, pnt2)/2;
- double alpha = angle_inter [CylBig];
- if (nzs != 2)
- {
- double h1 = cross_rayon[CylSmall][NxExt] * cos (angle_inter[CylSmall]);
- alpha = asin (h1/cross_rayon[CylBig][NxExt]);
- }
+ // double alpha = angle_inter [CylBig];
+ // if (nzs != 2)
+ // {
+ // double h1 = cross_rayon[CylSmall][NxExt] * cos (angle_inter[CylSmall]);
+ // alpha = asin (h1/cross_rayon[CylBig][NxExt]);
+ // }
for (int nro=0 ; nro<DIM3 ; nro++)
center[nro] = (pnt1[nro] + pnt2[nro])/2;
int subid = grid_geom->addCircle (center, rayon, normal, base);
- if (cyl_right == NO_PIPE)
+ if (cyl_right != IS_HERE)
{
assoArc (CylBig, NxExt, S_SE, nzs, subid);
assoArc (CylBig, NxExt, S_E, nzs, subid);
assoArc (CylBig, NxExt, S_NE, nzs, subid);
assoArc (CylBig, NxExt, S_N , nzs, subid);
- if (cyl_left == NO_PIPE)
+ if (cyl_left != IS_HERE)
{
assoArc (CylBig, NxExt, S_NW, nzs, subid);
assoArc (CylBig, NxExt, S_W , nzs, subid);
#include "HexEdge.hxx"
#include "HexDocument.hxx"
-#ifndef NO_CASCADE
#include "HexKasBiCylinder.hxx"
#include "HexKasPoint.hxx"
#include "HexKasLine.hxx"
edge->getVertex(V_AMONT)->clearAssociation();
edge->getVertex(V_AVAL )->clearAssociation();
}
-// ====================================================== associateShapes
-int associateShapes (Edges& mline, int msens[], Shape* gstart, Shapes& gline,
- double pstart, double pend, bool closed, bool inv)
-{
- db = on_debug ();
- if (db)
- {
- cout << "____________________________________________"
- << " associateShapes" << endl;
- PutData (gline.size());
- PutData (pstart);
- PutData (pend);
- PutData (closed);
- PutData (inv);
- }
-
- int nbshapes = gline.size ();
- int nblines = nbshapes + 1;
-
- vector <KasLine*> buff_line (nblines); // car nblines != 0
- vector <KasLine*> geom_line (nblines);
-
- // -------- Bufferisation des shapes
- for (int ns=0 ; ns<nbshapes ; ns++)
- buff_line [ns] = new KasLine (gline [ns], 0.0, 1.0);
-
- // -------- Premiere ligne
- int sdepart = NOTHING;
- double* extrem = NULL;
- double abscisse = 0;
- double pfin0 = 1;
- if (closed)
- {
- if (pstart > UnEpsil)
- {
- inv = true;
- pstart = 0;
- }
- else if (pstart < Epsil)
- {
- inv = false;
- }
- }
- else if (nbshapes==1)
- pfin0 = pend;
-
- KasLine* prems = geom_line[0] = new KasLine (gstart, pstart, pfin0);
-
- // Ligne fermee : sens impose par l'utilisateur
- if (closed)
- {
- sdepart = inv ? V_AVAL : V_AMONT;
- }
- // PolyLigne ouverte : trouver le sens
- else if (nbshapes>0)
- {
- sdepart = NOTHING;
- extrem = prems -> getEnd();
- for (int ns=V_AMONT ; ns<=V_AVAL && sdepart==NOTHING ; ns++)
- {
- for (int nb=0 ; nb<nbshapes && sdepart==NOTHING ; nb++)
- {
- if (buff_line[nb]->findBound(extrem) != NOTHING)
- sdepart = ns;
- }
- extrem = prems -> getStart();
- }
-
- if (sdepart==NOTHING)
- {
- printf (" ***************** Erreur dans associateShapes\n");
- printf (" ***************** La ligne ouverte est interrompue\n");
- return HERR;
- }
- }
- // Une seule ligne ouverte : depend de pstart et pend
- else if (pstart < pend)
- {
- sdepart = V_AMONT;
- pfin0 = pend;
- }
- else
- {
- sdepart = V_AVAL;
- pfin0 = pend;
- }
-
- prems -> setRank (0, sdepart, abscisse);
- extrem = prems -> getEnd();
- // -------- Rangement des autres lignes
- for (int nl=1 ; nl<nblines ; nl++)
- {
- bool more = true;
- for (int nb=0 ; more && nb<nbshapes ; nb++)
- {
- KasLine* ligne = buff_line[nb];
- int sens = ligne==NULL ? NOTHING : ligne->findBound (extrem);
- if (sens != NOTHING)
- {
- // Derniere ligne si ouverte
- if (NOT closed && nl==nblines-1)
- {
- ligne -> setBounds (0, pend);
- }
- ligne -> setRank (nl, sens, abscisse);
- buff_line [nb] = NULL;
- geom_line [nl] = ligne;
- extrem = ligne->getEnd();
- more = false;
- }
- }
- if (more)
- {
- printf (" ***************** Erreur dans KasLine\n");
- return HERR;
- }
- }
- if (closed && pstart > Epsil)
- {
- KasLine* ligne = new KasLine (gstart, 0, pstart);
- ligne->setRank (nblines, sdepart, abscisse);
- geom_line.push_back (ligne);
- }
-
- int ntlines = geom_line.size();
- int nbedges = mline.size ();
-
- if (db)
- cout << "=============================================================="
- << endl;
- // -------- Menage
- for (int ned=0 ; ned<nbedges ; ned++)
- clear_associations (mline[ned]);
- // -------- Associations
- double delta = abscisse / nbedges;
- for (int ned=0 ; ned<nbedges ; ned++)
- {
- double sm1 = ned * delta;
- double sm2 = sm1 + delta;
- for (int ns = 0 ; ns<ntlines ; ns++)
- geom_line[ns]->associate (mline[ned], sm1, sm2, msens[ned]);
- }
- // -------- Liberation
- for (int nl=1 ; nl<ntlines ; nl++)
- delete geom_line [nl];
-
- return HOK;
-}
// ====================================================== set_debug_asso
void set_debug_asso (bool boule)
{
brep = stream_shape.str();
}
END_NAMESPACE_HEXA
-
-// ------------------------------------------------------------------------
-#else // #ifndef NO_CASCADE
-// ------------------------------------------------------------------------
-
-BEGIN_NAMESPACE_HEXA
-
-// ====================================================== geom_create_circle
-void geom_create_circle (double* milieu, double rayon, double* normale,
- double* base, string& brep)
-{
- char buffer [80];
- sprintf (buffer, "(Cercle c=(%g,%g,%g), r=%g",
- milieu[0], milieu[1], milieu[2], rayon);
- brep = buffer;
-}
-// ====================================================== geom_create_sphere
-void geom_create_sphere (double* milieu, double radius, string& brep)
-{
-}
-//
-// ========================================================= cutAssociation
-void Elements::cutAssociation (Shapes& tshapes, Edges& tedges, bool exist)
-{
-}
-// ====================================================== geom_define_line
-void geom_define_line (string& brep)
-{
-}
-// ====================================================== geom_dump_asso
-void geom_dump_asso (Edge* edge)
-{
-}
-// ====================================================== geom_asso_point
-void geom_asso_point (double angle, Vertex* node)
-{
-}
-// ====================================================== geom_asso_point
-void geom_asso_point (Vertex* node)
-{
-}
-// ====================================================== translate_brep
-void translate_brep (string& orig, double dir[], string& result)
-{
- result = orig;
-}
-// ====================================================== transfo_brep
-void transfo_brep (string& brep, Matrix* matrice, string& trep)
-{
- trep = brep;
-}
-// ====================================================== dump_edge
-void dump_edge (Edge* edge)
-{
-}
-// ====================================================== associateShapes
-int associateShapes (Edges& mline, int msens[], Shape* gstart, Shapes& gline,
- double pstart, double pend, bool closed, bool inv)
-{
- return HOK;
-}
-// ====================================================== set_debug_asso
-void set_debug_asso (bool boule)
-{
-}
-// ====================================================== geom_create_cylcyl
-int geom_create_cylcyl (double* borig, double* bnorm, double* bbase,
- double bray, double bhaut,
- double* sorig, double* snorm, double* sbase,
- double sray, double shaut)
-{
- return HOK;
-}
-// ====================================================== geom_asso_cylcyl
-int geom_asso_cylcyl (Edge* edge)
-{
- return HOK;
-}
-// ====================================================== clean_brep
-void clean_brep (string& brep)
-{
-}
-END_NAMESPACE_HEXA
-#endif