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() {
|
PositionCreator() {
|
||||||
myFuncTable.resize( (size_t) TopAbs_SHAPE, & PositionCreator::defaultPosition );
|
myFuncTable.resize( (size_t) TopAbs_SHAPE, & PositionCreator::defaultPosition );
|
||||||
myFuncTable[ TopAbs_FACE ] = & PositionCreator::facePosition;
|
myFuncTable[ TopAbs_SOLID ] = & PositionCreator::volumePosition;
|
||||||
myFuncTable[ TopAbs_EDGE ] = & PositionCreator::edgePosition;
|
myFuncTable[ TopAbs_FACE ] = & PositionCreator::facePosition;
|
||||||
|
myFuncTable[ TopAbs_EDGE ] = & PositionCreator::edgePosition;
|
||||||
myFuncTable[ TopAbs_VERTEX ] = & PositionCreator::vertexPosition;
|
myFuncTable[ TopAbs_VERTEX ] = & PositionCreator::vertexPosition;
|
||||||
}
|
}
|
||||||
private:
|
private:
|
||||||
SMDS_PositionPtr edgePosition() const { return SMDS_PositionPtr( new SMDS_EdgePosition ); }
|
SMDS_PositionPtr edgePosition() const { return SMDS_PositionPtr( new SMDS_EdgePosition ); }
|
||||||
SMDS_PositionPtr facePosition() const { return SMDS_PositionPtr( new SMDS_FacePosition ); }
|
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 vertexPosition() const { return SMDS_PositionPtr( new SMDS_VertexPosition); }
|
||||||
SMDS_PositionPtr defaultPosition() const { return SMDS_SpacePosition::originSpacePosition(); }
|
SMDS_PositionPtr defaultPosition() const { return SMDS_SpacePosition::originSpacePosition(); }
|
||||||
typedef SMDS_PositionPtr (PositionCreator:: * FmakePos)() const;
|
typedef SMDS_PositionPtr (PositionCreator:: * FmakePos)() const;
|
||||||
|
Loading…
Reference in New Issue
Block a user