mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-11-12 00:29:17 +05:00
0020082: EDF 869 GEOM : Edges Orientation indicator/reverse
add reversedEdges parameter
This commit is contained in:
parent
53843f55f6
commit
67b7121966
@ -3530,6 +3530,17 @@ class Mesh_Algorithm:
|
|||||||
TreatHypoStatus( status, GetName(hypo), GetName(self.geom), 0 )
|
TreatHypoStatus( status, GetName(hypo), GetName(self.geom), 0 )
|
||||||
return hypo
|
return hypo
|
||||||
|
|
||||||
|
## Returns entry of the shape to mesh in the study
|
||||||
|
def MainShapeEntry(self):
|
||||||
|
entry = ""
|
||||||
|
if not self.mesh or not self.mesh.GetMesh(): return entry
|
||||||
|
if not self.mesh.GetMesh().HasShapeToMesh(): return entry
|
||||||
|
study = self.mesh.smeshpyD.GetCurrentStudy()
|
||||||
|
ior = salome.orb.object_to_string( self.mesh.GetShape() )
|
||||||
|
sobj = study.FindObjectIOR(ior)
|
||||||
|
if sobj: entry = sobj.GetID()
|
||||||
|
if not entry: return ""
|
||||||
|
return entry
|
||||||
|
|
||||||
# Public class: Mesh_Segment
|
# Public class: Mesh_Segment
|
||||||
# --------------------------
|
# --------------------------
|
||||||
@ -3603,29 +3614,41 @@ class Mesh_Segment(Mesh_Algorithm):
|
|||||||
## Defines "NumberOfSegments" hypothesis to cut an edge in a fixed number of segments
|
## Defines "NumberOfSegments" hypothesis to cut an edge in a fixed number of segments
|
||||||
# @param n for the number of segments that cut an edge
|
# @param n for the number of segments that cut an edge
|
||||||
# @param s for the scale factor (optional)
|
# @param s for the scale factor (optional)
|
||||||
|
# @param reversedEdges is a list of edges to mesh using reversed orientation
|
||||||
# @param UseExisting if ==true - searches for an existing hypothesis created with
|
# @param UseExisting if ==true - searches for an existing hypothesis created with
|
||||||
# the same parameters, else (default) - create a new one
|
# the same parameters, else (default) - create a new one
|
||||||
# @return an instance of StdMeshers_NumberOfSegments hypothesis
|
# @return an instance of StdMeshers_NumberOfSegments hypothesis
|
||||||
# @ingroup l3_hypos_1dhyps
|
# @ingroup l3_hypos_1dhyps
|
||||||
def NumberOfSegments(self, n, s=[], UseExisting=0):
|
def NumberOfSegments(self, n, s=[], reversedEdges=[], UseExisting=0):
|
||||||
|
if not isinstance(reversedEdges,list): #old version script, before adding reversedEdges
|
||||||
|
reversedEdges, UseExisting = [], reversedEdges
|
||||||
|
entry = self.MainShapeEntry()
|
||||||
if s == []:
|
if s == []:
|
||||||
hyp = self.Hypothesis("NumberOfSegments", [n], UseExisting=UseExisting,
|
hyp = self.Hypothesis("NumberOfSegments", [n, reversedEdges, entry],
|
||||||
|
UseExisting=UseExisting,
|
||||||
CompareMethod=self.CompareNumberOfSegments)
|
CompareMethod=self.CompareNumberOfSegments)
|
||||||
else:
|
else:
|
||||||
hyp = self.Hypothesis("NumberOfSegments", [n,s], UseExisting=UseExisting,
|
hyp = self.Hypothesis("NumberOfSegments", [n,s, reversedEdges, entry],
|
||||||
|
UseExisting=UseExisting,
|
||||||
CompareMethod=self.CompareNumberOfSegments)
|
CompareMethod=self.CompareNumberOfSegments)
|
||||||
hyp.SetDistrType( 1 )
|
hyp.SetDistrType( 1 )
|
||||||
hyp.SetScaleFactor(s)
|
hyp.SetScaleFactor(s)
|
||||||
hyp.SetNumberOfSegments(n)
|
hyp.SetNumberOfSegments(n)
|
||||||
|
hyp.SetReversedEdges( reversedEdges )
|
||||||
|
hyp.SetObjectEntry( entry )
|
||||||
return hyp
|
return hyp
|
||||||
|
|
||||||
## Private method
|
## Private method
|
||||||
## Checks if the given "NumberOfSegments" hypothesis has the same parameters as the given arguments
|
## Checks if the given "NumberOfSegments" hypothesis has the same parameters as the given arguments
|
||||||
def CompareNumberOfSegments(self, hyp, args):
|
def CompareNumberOfSegments(self, hyp, args):
|
||||||
if hyp.GetNumberOfSegments() == args[0]:
|
if hyp.GetNumberOfSegments() == args[0]:
|
||||||
if len(args) == 1:
|
if len(args) == 3:
|
||||||
|
if hyp.GetReversedEdges() == args[1]:
|
||||||
|
if not args[1] or hyp.GetObjectEntry() == args[2]:
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
|
if hyp.GetReversedEdges() == args[2]:
|
||||||
|
if not args[2] or hyp.GetObjectEntry() == args[3]:
|
||||||
if hyp.GetDistrType() == 1:
|
if hyp.GetDistrType() == 1:
|
||||||
if IsEqual(hyp.GetScaleFactor(), args[1]):
|
if IsEqual(hyp.GetScaleFactor(), args[1]):
|
||||||
return True
|
return True
|
||||||
@ -3634,15 +3657,22 @@ class Mesh_Segment(Mesh_Algorithm):
|
|||||||
## Defines "Arithmetic1D" hypothesis to cut an edge in several segments with increasing arithmetic length
|
## Defines "Arithmetic1D" hypothesis to cut an edge in several segments with increasing arithmetic length
|
||||||
# @param start defines the length of the first segment
|
# @param start defines the length of the first segment
|
||||||
# @param end defines the length of the last segment
|
# @param end defines the length of the last segment
|
||||||
|
# @param reversedEdges is a list of edges to mesh using reversed orientation
|
||||||
# @param UseExisting if ==true - searches for an existing hypothesis created with
|
# @param UseExisting if ==true - searches for an existing hypothesis created with
|
||||||
# the same parameters, else (default) - creates a new one
|
# the same parameters, else (default) - creates a new one
|
||||||
# @return an instance of StdMeshers_Arithmetic1D hypothesis
|
# @return an instance of StdMeshers_Arithmetic1D hypothesis
|
||||||
# @ingroup l3_hypos_1dhyps
|
# @ingroup l3_hypos_1dhyps
|
||||||
def Arithmetic1D(self, start, end, UseExisting=0):
|
def Arithmetic1D(self, start, end, reversedEdges=[], UseExisting=0):
|
||||||
hyp = self.Hypothesis("Arithmetic1D", [start, end], UseExisting=UseExisting,
|
if not isinstance(reversedEdges,list): #old version script, before adding reversedEdges
|
||||||
|
reversedEdges, UseExisting = [], reversedEdges
|
||||||
|
entry = self.MainShapeEntry()
|
||||||
|
hyp = self.Hypothesis("Arithmetic1D", [start, end, reversedEdges, entry],
|
||||||
|
UseExisting=UseExisting,
|
||||||
CompareMethod=self.CompareArithmetic1D)
|
CompareMethod=self.CompareArithmetic1D)
|
||||||
hyp.SetLength(start, 1)
|
hyp.SetStartLength(start)
|
||||||
hyp.SetLength(end , 0)
|
hyp.SetEndLength(end)
|
||||||
|
hyp.SetReversedEdges( reversedEdges )
|
||||||
|
hyp.SetObjectEntry( entry )
|
||||||
return hyp
|
return hyp
|
||||||
|
|
||||||
## Private method
|
## Private method
|
||||||
@ -3650,27 +3680,38 @@ class Mesh_Segment(Mesh_Algorithm):
|
|||||||
def CompareArithmetic1D(self, hyp, args):
|
def CompareArithmetic1D(self, hyp, args):
|
||||||
if IsEqual(hyp.GetLength(1), args[0]):
|
if IsEqual(hyp.GetLength(1), args[0]):
|
||||||
if IsEqual(hyp.GetLength(0), args[1]):
|
if IsEqual(hyp.GetLength(0), args[1]):
|
||||||
|
if hyp.GetReversedEdges() == args[2]:
|
||||||
|
if not args[2] or hyp.GetObjectEntry() == args[3]:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
## Defines "StartEndLength" hypothesis to cut an edge in several segments with increasing geometric length
|
## Defines "StartEndLength" hypothesis to cut an edge in several segments with increasing geometric length
|
||||||
# @param start defines the length of the first segment
|
# @param start defines the length of the first segment
|
||||||
# @param end defines the length of the last segment
|
# @param end defines the length of the last segment
|
||||||
|
# @param reversedEdges is a list of edges to mesh using reversed orientation
|
||||||
# @param UseExisting if ==true - searches for an existing hypothesis created with
|
# @param UseExisting if ==true - searches for an existing hypothesis created with
|
||||||
# the same parameters, else (default) - creates a new one
|
# the same parameters, else (default) - creates a new one
|
||||||
# @return an instance of StdMeshers_StartEndLength hypothesis
|
# @return an instance of StdMeshers_StartEndLength hypothesis
|
||||||
# @ingroup l3_hypos_1dhyps
|
# @ingroup l3_hypos_1dhyps
|
||||||
def StartEndLength(self, start, end, UseExisting=0):
|
def StartEndLength(self, start, end, reversedEdges=[], UseExisting=0):
|
||||||
hyp = self.Hypothesis("StartEndLength", [start, end], UseExisting=UseExisting,
|
if not isinstance(reversedEdges,list): #old version script, before adding reversedEdges
|
||||||
|
reversedEdges, UseExisting = [], reversedEdges
|
||||||
|
entry = self.MainShapeEntry()
|
||||||
|
hyp = self.Hypothesis("StartEndLength", [start, end, reversedEdges, entry],
|
||||||
|
UseExisting=UseExisting,
|
||||||
CompareMethod=self.CompareStartEndLength)
|
CompareMethod=self.CompareStartEndLength)
|
||||||
hyp.SetLength(start, 1)
|
hyp.SetStartLength(start)
|
||||||
hyp.SetLength(end , 0)
|
hyp.SetEndLength(end)
|
||||||
|
hyp.SetReversedEdges( reversedEdges )
|
||||||
|
hyp.SetObjectEntry( entry )
|
||||||
return hyp
|
return hyp
|
||||||
|
|
||||||
## Check if the given "StartEndLength" hypothesis has the same parameters as the given arguments
|
## Check if the given "StartEndLength" hypothesis has the same parameters as the given arguments
|
||||||
def CompareStartEndLength(self, hyp, args):
|
def CompareStartEndLength(self, hyp, args):
|
||||||
if IsEqual(hyp.GetLength(1), args[0]):
|
if IsEqual(hyp.GetLength(1), args[0]):
|
||||||
if IsEqual(hyp.GetLength(0), args[1]):
|
if IsEqual(hyp.GetLength(0), args[1]):
|
||||||
|
if hyp.GetReversedEdges() == args[2]:
|
||||||
|
if not args[2] or hyp.GetObjectEntry() == args[3]:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user