Interface for Blocks construction Face from points or edges, Block from faces, Blocks multi-translation and multi-rotation.
import "GEOM_Gen.idl";
Classes | |
struct | BCError |
Description of Blocks Compound defect: type and incriminated sub-shapes. More... | |
Public Types | |
enum | BCErrorType { NOT_BLOCK, EXTRA_EDGE, INVALID_CONNECTION, NOT_CONNECTED, NOT_GLUED } |
Enumeration of Blocks Compound defects. More... | |
typedef sequence< BCError > | BCErrors |
Sequence of all Blocks Compound defects. More... | |
Public Member Functions | |
GEOM_Object | MakeQuad (in GEOM_Object theEdge1, in GEOM_Object theEdge2, in GEOM_Object theEdge3, in GEOM_Object theEdge4) |
Create a quadrangle face from four edges. Order of Edges is not important. It is not necessary that edges share the same vertex. More... | |
GEOM_Object | MakeQuad2Edges (in GEOM_Object theEdge1, in GEOM_Object theEdge2) |
Create a quadrangle face on two edges. More... | |
GEOM_Object | MakeQuad4Vertices (in GEOM_Object thePnt1, in GEOM_Object thePnt2, in GEOM_Object thePnt3, in GEOM_Object thePnt4) |
Create a quadrangle face with specified corners. More... | |
GEOM_Object | MakeHexa (in GEOM_Object theFace1, in GEOM_Object theFace2, in GEOM_Object theFace3, in GEOM_Object theFace4, in GEOM_Object theFace5, in GEOM_Object theFace6) |
Create a hexahedral solid, bounded by the six given faces. Order of faces is not important. More... | |
GEOM_Object | MakeHexa2Faces (in GEOM_Object theFace1, in GEOM_Object theFace2) |
Create a hexahedral solid between two given faces. More... | |
GEOM_Object | GetPoint (in GEOM_Object theShape, in double theX, in double theY, in double theZ, in double theEpsilon) |
Get a vertex, found in the given shape by its coordinates. More... | |
GEOM_Object | GetVertexNearPoint (in GEOM_Object theShape, in GEOM_Object thePoint) |
Find a vertex of the given shape, which has minimal distance to the given point. More... | |
GEOM_Object | GetEdge (in GEOM_Object theShape, in GEOM_Object thePoint1, in GEOM_Object thePoint2) |
Get an edge, found in the given shape by two given vertices. More... | |
GEOM_Object | GetEdgeNearPoint (in GEOM_Object theShape, in GEOM_Object thePoint) |
Find an edge of the given shape, which has minimal distance to the given point. More... | |
GEOM_Object | GetFaceByPoints (in GEOM_Object theShape, in GEOM_Object thePoint1, in GEOM_Object thePoint2, in GEOM_Object thePoint3, in GEOM_Object thePoint4) |
Returns a face, found in the given shape by four given corner vertices. More... | |
GEOM_Object | GetFaceByEdges (in GEOM_Object theShape, in GEOM_Object theEdge1, in GEOM_Object theEdge2) |
Get a face of block, found in the given shape by two given edges. More... | |
GEOM_Object | GetOppositeFace (in GEOM_Object theBlock, in GEOM_Object theFace) |
Find a face, opposite to the given one in the given block. More... | |
GEOM_Object | GetFaceNearPoint (in GEOM_Object theShape, in GEOM_Object thePoint) |
Find a face of the given shape, which has minimal distance to the given point. More... | |
GEOM_Object | GetFaceByNormale (in GEOM_Object theBlock, in GEOM_Object theVector) |
Find a face of block, whose outside normale has minimal angle with the given vector. More... | |
GEOM_Object | GetShapesNearPoint (in GEOM_Object theShape, in GEOM_Object thePoint, in long theShapeType, in double theTolerance) |
Find all sub-shapes of type theShapeType of the given shape, which have minimal distance to the given point. More... | |
boolean | IsCompoundOfBlocks (in GEOM_Object theCompound, in long theMinNbFaces, in long theMaxNbFaces, out long theNbBlocks) |
Check, if the compound contains only specified blocks. More... | |
boolean | CheckCompoundOfBlocks (in GEOM_Object theCompound, in double theToleranceC1, out BCErrors theErrors) |
Check, if the compound of blocks is given. More... | |
string | PrintBCErrors (in GEOM_Object theCompound, in BCErrors theErrors) |
Convert sequence of Blocks Compound errors, returned by CheckCompoundOfBlocks(), into string. More... | |
GEOM_Object | GetNonBlocks (in GEOM_Object theShape, in double theToleranceC1, out GEOM_Object theNonQuads) |
Retrieve all non blocks solids and faces from a shape. More... | |
GEOM_Object | RemoveExtraEdges (in GEOM_Object theShape, in long theOptimumNbFaces) |
Remove all seam and degenerated edges from theShape. More... | |
GEOM_Object | UnionFaces (in GEOM_Object theShape) |
Performs union faces of theShape. More... | |
GEOM_Object | CheckAndImprove (in GEOM_Object theCompound) |
Check, if the given shape is a blocks compound. More... | |
ListOfGO | ExplodeCompoundOfBlocks (in GEOM_Object theCompound, in long theMinNbFaces, in long theMaxNbFaces) |
Get all the blocks, contained in the given compound. More... | |
GEOM_Object | GetBlockNearPoint (in GEOM_Object theCompound, in GEOM_Object thePoint) |
Find block, containing the given point inside its volume or on boundary. More... | |
GEOM_Object | GetBlockByParts (in GEOM_Object theCompound, in ListOfGO theParts) |
Find block, containing all the elements, passed as the parts, or maximum quantity of them. More... | |
ListOfGO | GetBlocksByParts (in GEOM_Object theCompound, in ListOfGO theParts) |
Return all blocks, containing all the elements, passed as the parts. More... | |
GEOM_Object | MakeMultiTransformation1D (in GEOM_Object theBlock, in long theDirFace1, in long theDirFace2, in long theNbTimes) |
Multi-transformate block and glue the result. More... | |
GEOM_Object | MakeMultiTransformation2D (in GEOM_Object theBlock, in long theDirFace1U, in long theDirFace2U, in long theNbTimesU, in long theDirFace1V, in long theDirFace2V, in long theNbTimesV) |
Multi-transformate block and glue the result. More... | |
ListOfGO | Propagate (in GEOM_Object theShape) |
Build all possible propagation groups. More... | |
Public Member Functions inherited from GEOM::GEOM_IOperations | |
boolean | IsDone () |
To know, if the operation was successfully performed. More... | |
void | SetErrorCode (in string theErrorID) |
Set the operation error code. More... | |
string | GetErrorCode () |
Get the operation error code. More... | |
long | GetStudyID () |
Get ID of study, where the operation is defined. More... | |
void | StartOperation () |
Opens a new transaction. More... | |
void | FinishOperation () |
Closes the previously opened trasaction. More... | |
void | AbortOperation () |
Aborts the previously opened transaction. More... | |
typedef sequence<BCError> GEOM::GEOM_IBlocksOperations::BCErrors |
GEOM_Object GEOM::GEOM_IBlocksOperations::CheckAndImprove | ( | in GEOM_Object | theCompound | ) |
Fix all detected errors.
theCompound | The compound to check and improve. |
boolean GEOM::GEOM_IBlocksOperations::CheckCompoundOfBlocks | ( | in GEOM_Object | theCompound, |
in double | theToleranceC1, | ||
out BCErrors | theErrors | ||
) |
To be considered as a compound of blocks, the given shape must satisfy the following conditions:
theCompound | The compound to check. |
theToleranceC1 | the tolerance to check if two neighbor edges are collinear in the common vertex with this tolerance. Negative value means that C1 criterion is not used (old implementation). |
theErrors | Structure, containing discovered errors and incriminated sub-shapes. |
ListOfGO GEOM::GEOM_IBlocksOperations::ExplodeCompoundOfBlocks | ( | in GEOM_Object | theCompound, |
in long | theMinNbFaces, | ||
in long | theMaxNbFaces | ||
) |
theCompound | The compound to explode. |
theMinNbFaces | If solid has lower number of faces, it is not a block. |
theMaxNbFaces | If solid has higher number of faces, it is not a block. |
GEOM_Object GEOM::GEOM_IBlocksOperations::GetBlockByParts | ( | in GEOM_Object | theCompound, |
in ListOfGO | theParts | ||
) |
theCompound | Compound, to find block in. |
theParts | List of faces and/or edges and/or vertices to be parts of the found block. |
GEOM_Object GEOM::GEOM_IBlocksOperations::GetBlockNearPoint | ( | in GEOM_Object | theCompound, |
in GEOM_Object | thePoint | ||
) |
theCompound | Compound, to find block in. |
thePoint | Point, close to the desired block. If the point lays on boundary between some blocks, we return block with nearest center. |
ListOfGO GEOM::GEOM_IBlocksOperations::GetBlocksByParts | ( | in GEOM_Object | theCompound, |
in ListOfGO | theParts | ||
) |
theCompound | Compound, to find blocks in. |
theParts | List of faces and/or edges and/or vertices to be parts of the found blocks. |
GEOM_Object GEOM::GEOM_IBlocksOperations::GetEdge | ( | in GEOM_Object | theShape, |
in GEOM_Object | thePoint1, | ||
in GEOM_Object | thePoint2 | ||
) |
theShape | Block or a compound of blocks. |
thePoint1,thePoint2 | Points, close to the ends of the desired edge. |
GEOM_Object GEOM::GEOM_IBlocksOperations::GetEdgeNearPoint | ( | in GEOM_Object | theShape, |
in GEOM_Object | thePoint | ||
) |
theShape | Block or a compound of blocks. |
thePoint | Point, close to the desired edge. |
GEOM_Object GEOM::GEOM_IBlocksOperations::GetFaceByEdges | ( | in GEOM_Object | theShape, |
in GEOM_Object | theEdge1, | ||
in GEOM_Object | theEdge2 | ||
) |
theShape | Block or a compound of blocks. |
theEdge1,theEdge2 | Edges, close to the edges of the desired face. |
GEOM_Object GEOM::GEOM_IBlocksOperations::GetFaceByNormale | ( | in GEOM_Object | theBlock, |
in GEOM_Object | theVector | ||
) |
theBlock | Block or a compound of blocks. |
theVector | Vector, close to the normale of the desired face. |
GEOM_Object GEOM::GEOM_IBlocksOperations::GetFaceByPoints | ( | in GEOM_Object | theShape, |
in GEOM_Object | thePoint1, | ||
in GEOM_Object | thePoint2, | ||
in GEOM_Object | thePoint3, | ||
in GEOM_Object | thePoint4 | ||
) |
theShape | Block or a compound of blocks. |
thePoint1,thePoint2,thePoint3,thePoint4 | Points, close to the corners of the desired face. |
GEOM_Object GEOM::GEOM_IBlocksOperations::GetFaceNearPoint | ( | in GEOM_Object | theShape, |
in GEOM_Object | thePoint | ||
) |
theShape | Block or a compound of blocks. |
thePoint | Point, close to the desired face. |
GEOM_Object GEOM::GEOM_IBlocksOperations::GetNonBlocks | ( | in GEOM_Object | theShape, |
in double | theToleranceC1, | ||
out GEOM_Object | theNonQuads | ||
) |
theShape | The shape to explore. |
theToleranceC1 | the tolerance to check if two neighbor edges are collinear in the common vertex with this tolerance. Negative value means that C1 criterion is not used (old implementation). |
theNonQuads | Output parameter. Group of all non quadrangular faces. |
GEOM_Object GEOM::GEOM_IBlocksOperations::GetOppositeFace | ( | in GEOM_Object | theBlock, |
in GEOM_Object | theFace | ||
) |
theBlock | Must be a hexahedral solid. |
theFace | Face of theBlock, opposite to the desired face. |
GEOM_Object GEOM::GEOM_IBlocksOperations::GetPoint | ( | in GEOM_Object | theShape, |
in double | theX, | ||
in double | theY, | ||
in double | theZ, | ||
in double | theEpsilon | ||
) |
theShape | Block or a compound of blocks. |
theX,theY,theZ | Coordinates of the sought vertex. |
theEpsilon | Maximum allowed distance between the resulting vertex and point with the given coordinates. |
GEOM_Object GEOM::GEOM_IBlocksOperations::GetShapesNearPoint | ( | in GEOM_Object | theShape, |
in GEOM_Object | thePoint, | ||
in long | theShapeType, | ||
in double | theTolerance | ||
) |
theShape | Any shape. |
thePoint | Point, close to the desired shape. |
theShapeType | Defines what kind of sub-shapes is searched. |
theTolerance | The tolerance for distances comparison. All shapes with distances to the given point in interval [minimal_distance, minimal_distance + theTolerance] will be gathered. |
GEOM_Object GEOM::GEOM_IBlocksOperations::GetVertexNearPoint | ( | in GEOM_Object | theShape, |
in GEOM_Object | thePoint | ||
) |
theShape | Any shape. |
thePoint | Point, close to the desired vertex. |
boolean GEOM::GEOM_IBlocksOperations::IsCompoundOfBlocks | ( | in GEOM_Object | theCompound, |
in long | theMinNbFaces, | ||
in long | theMaxNbFaces, | ||
out long | theNbBlocks | ||
) |
theCompound | The compound to check. |
theMinNbFaces | If solid has lower number of faces, it is not a block. |
theMaxNbFaces | If solid has higher number of faces, it is not a block. |
theNbBlocks | Number of specified blocks in theCompound. |
GEOM_Object GEOM::GEOM_IBlocksOperations::MakeHexa | ( | in GEOM_Object | theFace1, |
in GEOM_Object | theFace2, | ||
in GEOM_Object | theFace3, | ||
in GEOM_Object | theFace4, | ||
in GEOM_Object | theFace5, | ||
in GEOM_Object | theFace6 | ||
) |
It is not necessary that Faces share the same edge.
theFace1,theFace2,theFace3,theFace4,theFace5,theFace6 | Faces for the hexahedral solid. |
GEOM_Object GEOM::GEOM_IBlocksOperations::MakeHexa2Faces | ( | in GEOM_Object | theFace1, |
in GEOM_Object | theFace2 | ||
) |
The missing faces will be built by creating the smallest ones.
theFace1,theFace2 | Two opposite faces for the hexahedral solid. |
GEOM_Object GEOM::GEOM_IBlocksOperations::MakeMultiTransformation1D | ( | in GEOM_Object | theBlock, |
in long | theDirFace1, | ||
in long | theDirFace2, | ||
in long | theNbTimes | ||
) |
Transformation is defined so, as to superpose theDirFace1 with theDirFace2.
theBlock | Hexahedral solid to be multi-transformed. |
theDirFace1 | First direction face global index. |
theDirFace2 | Second direction face global index. |
theNbTimes | Quantity of transformations to be done. |
GEOM_Object GEOM::GEOM_IBlocksOperations::MakeMultiTransformation2D | ( | in GEOM_Object | theBlock, |
in long | theDirFace1U, | ||
in long | theDirFace2U, | ||
in long | theNbTimesU, | ||
in long | theDirFace1V, | ||
in long | theDirFace2V, | ||
in long | theNbTimesV | ||
) |
theBlock | Hexahedral solid to be multi-transformed. |
theDirFace1U,theDirFace2U | Direction faces for the first transformation. |
theDirFace1V,theDirFace2V | Direction faces for the second transformation. |
theNbTimesU,theNbTimesV | Quantity of transformations to be done. |
GEOM_Object GEOM::GEOM_IBlocksOperations::MakeQuad | ( | in GEOM_Object | theEdge1, |
in GEOM_Object | theEdge2, | ||
in GEOM_Object | theEdge3, | ||
in GEOM_Object | theEdge4 | ||
) |
theEdge1,theEdge2,theEdge3,theEdge4 | Edges for the face bound. |
GEOM_Object GEOM::GEOM_IBlocksOperations::MakeQuad2Edges | ( | in GEOM_Object | theEdge1, |
in GEOM_Object | theEdge2 | ||
) |
The missing edges will be built by creating the shortest ones.
theEdge1,theEdge2 | Two opposite edges for the face. |
GEOM_Object GEOM::GEOM_IBlocksOperations::MakeQuad4Vertices | ( | in GEOM_Object | thePnt1, |
in GEOM_Object | thePnt2, | ||
in GEOM_Object | thePnt3, | ||
in GEOM_Object | thePnt4 | ||
) |
The missing edges will be built by creating the shortest ones.
thePnt1,thePnt2,thePnt3,thePnt4 | Corner vertices for the face. |
string GEOM::GEOM_IBlocksOperations::PrintBCErrors | ( | in GEOM_Object | theCompound, |
in BCErrors | theErrors | ||
) |
theCompound | The bad compound. |
theErrors | The sequence of theCompound errors. |
ListOfGO GEOM::GEOM_IBlocksOperations::Propagate | ( | in GEOM_Object | theShape | ) |
Propagation group is a set of all edges, opposite to one (main) edge of this group directly or through other opposite edges. Notion of Opposite Edge make sence only on quadrangle face.
theShape | Shape to build propagation groups on. |
GEOM_Object GEOM::GEOM_IBlocksOperations::RemoveExtraEdges | ( | in GEOM_Object | theShape, |
in long | theOptimumNbFaces | ||
) |
Unite faces and edges, sharing one surface.
theShape | The compound or single solid to remove irregular edges from. |
theOptimumNbFaces | If more than zero, unite faces only for those solids, that have more than theOptimumNbFaces faces. If zero, unite faces always, regardsless their quantity in the solid. If negative, do not unite faces at all. For blocks repairing recommended value is 6. |
GEOM_Object GEOM::GEOM_IBlocksOperations::UnionFaces | ( | in GEOM_Object | theShape | ) |
Unite faces sharing one surface.
theShape | The compound or single solid that contains faces to perform union. |