X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FTools%2FblocFissure%2Fgmu%2FproduitMixte.py;h=502b8d2ecd35f1a1af1b6fda9f7a5303ce3671b4;hp=96c7cce7fd823ab60ad6d23daeafa6cc82c389ca;hb=HEAD;hpb=5260bd00bd51567f6137d5ea7ae0564464c4290a diff --git a/src/Tools/blocFissure/gmu/produitMixte.py b/src/Tools/blocFissure/gmu/produitMixte.py index 96c7cce7f..d000246e8 100644 --- a/src/Tools/blocFissure/gmu/produitMixte.py +++ b/src/Tools/blocFissure/gmu/produitMixte.py @@ -1,23 +1,42 @@ # -*- coding: utf-8 -*- +# Copyright (C) 2014-2024 EDF +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +"""Calcul de produit mixte pour orientation""" import logging + from .geomsmesh import geompy -# ----------------------------------------------------------------------------- -# --- calcul de produit mixte pour orientation +def produitMixte(origine, point_1, point_2, point_3): + """produit mixte de 3 vecteurs a partir d'une origine et 3 points""" + coordo = geompy.PointCoordinates(origine) + coord_1 = geompy.PointCoordinates(point_1) + coord_2 = geompy.PointCoordinates(point_2) + coord_3 = geompy.PointCoordinates(point_3) + + o_1 = [coord_1[0] - coordo[0], coord_1[1] - coordo[1], coord_1[2] - coordo[2]] + o_2 = [coord_2[0] - coordo[0], coord_2[1] - coordo[1], coord_2[2] - coordo[2]] + o_3 = [coord_3[0] - coordo[0], coord_3[1] - coordo[1], coord_3[2] - coordo[2]] + + prmi = ( o_1[0]*o_2[1]*o_3[2] + o_2[0]*o_3[1]*o_1[2] + o_3[0]*o_1[1]*o_2[2] ) \ + - ( o_1[0]*o_3[1]*o_2[2] + o_2[0]*o_1[1]*o_3[2] + o_3[0]*o_2[1]*o_1[2] ) -def produitMixte(o, p1, p2, p3): - """ - produit mixte de 3 vecteurs a partir d'une origine et 3 points - """ - coordo = geompy.PointCoordinates(o) - coordp1 = geompy.PointCoordinates(p1) - coordp2 = geompy.PointCoordinates(p2) - coordp3 = geompy.PointCoordinates(p3) - u = [coordp1[0] - coordo[0], coordp1[1] - coordo[1], coordp1[2] - coordo[2]] - v = [coordp2[0] - coordo[0], coordp2[1] - coordo[1], coordp2[2] - coordo[2]] - w = [coordp3[0] - coordo[0], coordp3[1] - coordo[1], coordp3[2] - coordo[2]] - pm = (u[0]*v[1]*w[2] + v[0]*w[1]*u[2] + w[0]*u[1]*v[2]) - (u[0]*w[1]*v[2] + v[0]*u[1]*w[2] + w[0]*v[1]*u[2]) - logging.debug('pm=%s', pm) - return pm + logging.debug('prmi=%s', prmi) + return prmi