mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-11-15 10:08:34 +05:00
0020951: EDF 1501 SMESH: Conversion linear/quadratic with medium nodes on geometry fails with GHS3D
* Fix for usecase: open the atached study, convert Mesh_1 from quadratic, unassign GHS3D algo -> SIGSEGV. Reason is that the same SMDS_SpacePosition is shared by all nodes in different solids.
This commit is contained in:
parent
cb58ff9fa4
commit
da13b7ebd3
@ -3247,13 +3247,15 @@ public:
|
||||
}
|
||||
PositionCreator() {
|
||||
myFuncTable.resize( (size_t) TopAbs_SHAPE, & PositionCreator::defaultPosition );
|
||||
myFuncTable[ TopAbs_FACE ] = & PositionCreator::facePosition;
|
||||
myFuncTable[ TopAbs_EDGE ] = & PositionCreator::edgePosition;
|
||||
myFuncTable[ TopAbs_SOLID ] = & PositionCreator::volumePosition;
|
||||
myFuncTable[ TopAbs_FACE ] = & PositionCreator::facePosition;
|
||||
myFuncTable[ TopAbs_EDGE ] = & PositionCreator::edgePosition;
|
||||
myFuncTable[ TopAbs_VERTEX ] = & PositionCreator::vertexPosition;
|
||||
}
|
||||
private:
|
||||
SMDS_PositionPtr edgePosition() const { return SMDS_PositionPtr( new SMDS_EdgePosition ); }
|
||||
SMDS_PositionPtr facePosition() const { return SMDS_PositionPtr( new SMDS_FacePosition ); }
|
||||
SMDS_PositionPtr volumePosition() const { return SMDS_PositionPtr( new SMDS_SpacePosition ); }
|
||||
SMDS_PositionPtr vertexPosition() const { return SMDS_PositionPtr( new SMDS_VertexPosition); }
|
||||
SMDS_PositionPtr defaultPosition() const { return SMDS_SpacePosition::originSpacePosition(); }
|
||||
typedef SMDS_PositionPtr (PositionCreator:: * FmakePos)() const;
|
||||
|
Loading…
Reference in New Issue
Block a user