Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::geometric::GeomShapeOperation< OperationFunction > Class Template Reference

Template class to apply specific operations to a geometric shape view. More...

#include <arcane/geometry/GeomShapeOperation.h>

Inheritance diagram for Arcane::geometric::GeomShapeOperation< OperationFunction >:
Collaboration diagram for Arcane::geometric::GeomShapeOperation< OperationFunction >:

Public Member Functions

template<typename... BuildArgs>
 GeomShapeOperation (GeomShapeMng &shape_mng, BuildArgs... compute_function_args)
 Constructs the operator.
template<typename ShapeType>
void apply (ItemVectorView cells)
void applyTriangle3 (ItemVectorView cells)
void applyQuad4 (ItemVectorView cells)
void applyPentagon5 (ItemVectorView cells)
void applyHexagon6 (ItemVectorView cells)
void applyTetraedron4 (ItemVectorView cells)
void applyPyramid5 (ItemVectorView cells)
void applyPentaedron6 (ItemVectorView cells)
void applyHexaedron8 (ItemVectorView cells)
void applyHeptaedron10 (ItemVectorView cells)
void applyOctaedron12 (ItemVectorView cells)
OperationFunction & operation ()
 Operator instance.
GeomShapeMngcellShapeMng ()
 Associated manager.
Public Member Functions inherited from Arcane::AbstractItemOperationByBasicType
void applyVertex (ItemVectorView items) override
void applyLine2 (ItemVectorView items) override
void applyHemiHexa7 (ItemVectorView group) override
void applyHemiHexa6 (ItemVectorView group) override
void applyHemiHexa5 (ItemVectorView group) override
void applyAntiWedgeLeft6 (ItemVectorView group) override
void applyAntiWedgeRight6 (ItemVectorView group) override
void applyDiTetra5 (ItemVectorView group) override
void applyDualNode (ItemVectorView group) override
void applyDualEdge (ItemVectorView group) override
void applyDualFace (ItemVectorView group) override
void applyDualCell (ItemVectorView group) override
void applyLink (ItemVectorView group) override
Public Member Functions inherited from Arcane::IItemOperationByBasicType
virtual ~IItemOperationByBasicType ()=default
 Releases resources.

Private Attributes

GeomShapeMng m_shape_mng
OperationFunction m_operation_function

Detailed Description

template<typename OperationFunction>
class Arcane::geometric::GeomShapeOperation< OperationFunction >

Template class to apply specific operations to a geometric shape view.

This class allows providing an operator implementing IItemOperationByBasicType from an instance of OperationFunction that uses views specific to geometric shapes (the derived classes of GeomShapeView).

The class OperationFunction must provide an apply() method for each shape geometric type (Hexaedron8ShapeView, Quad4ShapeView, ...)

The call is then made with a group of cells (CellGroup) by calling the ItemGroup::applyOperation() method with this instance as an argument:

// Definition of the operation
class MyFunc
{
public:
void apply(Hexaedron8ShapeView view)
{
// Applies the operation for a hexahedron.
}
};
CellGroup cells;
// Applies \a op on the group \a cells
cells.applyOperation(&op);
void applyOperation(IItemOperationByBasicType *operation) const
Applies the operation operation to the entities of the group.
Definition ItemGroup.cc:528
GeomShapeOperation(GeomShapeMng &shape_mng, BuildArgs... compute_function_args)
Constructs the operator.
Specific view on geometric shapes of type GeomType::Hexaedron8.
ItemGroupT< Cell > CellGroup
Group of cells.
Definition ItemTypes.h:184

Definition at line 64 of file src/arcane/geometry/GeomShapeOperation.h.

Constructor & Destructor Documentation

◆ GeomShapeOperation()

template<typename OperationFunction>
template<typename... BuildArgs>
Arcane::geometric::GeomShapeOperation< OperationFunction >::GeomShapeOperation ( GeomShapeMng & shape_mng,
BuildArgs... compute_function_args )
inline

Constructs the operator.

The first argument is of type GeomShapeMng and is used to initialize the operator. Subsequent optional arguments are passed directly to the OperationFunction constructor.

shape_mng must have been initialized before operations can be applied.

Definition at line 79 of file src/arcane/geometry/GeomShapeOperation.h.

Member Function Documentation

◆ apply()

template<typename OperationFunction>
template<typename ShapeType>
void Arcane::geometric::GeomShapeOperation< OperationFunction >::apply ( ItemVectorView cells)
inline

Definition at line 86 of file src/arcane/geometry/GeomShapeOperation.h.

◆ applyHeptaedron10()

template<typename OperationFunction>
void Arcane::geometric::GeomShapeOperation< OperationFunction >::applyHeptaedron10 ( ItemVectorView cells)
inlinevirtual

◆ applyHexaedron8()

template<typename OperationFunction>
void Arcane::geometric::GeomShapeOperation< OperationFunction >::applyHexaedron8 ( ItemVectorView cells)
inlinevirtual

◆ applyHexagon6()

template<typename OperationFunction>
void Arcane::geometric::GeomShapeOperation< OperationFunction >::applyHexagon6 ( ItemVectorView cells)
inlinevirtual

◆ applyOctaedron12()

template<typename OperationFunction>
void Arcane::geometric::GeomShapeOperation< OperationFunction >::applyOctaedron12 ( ItemVectorView cells)
inlinevirtual

◆ applyPentaedron6()

template<typename OperationFunction>
void Arcane::geometric::GeomShapeOperation< OperationFunction >::applyPentaedron6 ( ItemVectorView cells)
inlinevirtual

◆ applyPentagon5()

template<typename OperationFunction>
void Arcane::geometric::GeomShapeOperation< OperationFunction >::applyPentagon5 ( ItemVectorView cells)
inlinevirtual

◆ applyPyramid5()

template<typename OperationFunction>
void Arcane::geometric::GeomShapeOperation< OperationFunction >::applyPyramid5 ( ItemVectorView cells)
inlinevirtual

◆ applyQuad4()

template<typename OperationFunction>
void Arcane::geometric::GeomShapeOperation< OperationFunction >::applyQuad4 ( ItemVectorView cells)
inlinevirtual

◆ applyTetraedron4()

template<typename OperationFunction>
void Arcane::geometric::GeomShapeOperation< OperationFunction >::applyTetraedron4 ( ItemVectorView cells)
inlinevirtual

◆ applyTriangle3()

template<typename OperationFunction>
void Arcane::geometric::GeomShapeOperation< OperationFunction >::applyTriangle3 ( ItemVectorView cells)
inlinevirtual

◆ cellShapeMng()

template<typename OperationFunction>
GeomShapeMng & Arcane::geometric::GeomShapeOperation< OperationFunction >::cellShapeMng ( )
inline

Associated manager.

Definition at line 143 of file src/arcane/geometry/GeomShapeOperation.h.

◆ operation()

template<typename OperationFunction>
OperationFunction & Arcane::geometric::GeomShapeOperation< OperationFunction >::operation ( )
inline

Operator instance.

Definition at line 141 of file src/arcane/geometry/GeomShapeOperation.h.

Member Data Documentation

◆ m_operation_function

template<typename OperationFunction>
OperationFunction Arcane::geometric::GeomShapeOperation< OperationFunction >::m_operation_function
private

Definition at line 148 of file src/arcane/geometry/GeomShapeOperation.h.

◆ m_shape_mng

template<typename OperationFunction>
GeomShapeMng Arcane::geometric::GeomShapeOperation< OperationFunction >::m_shape_mng
private

Definition at line 147 of file src/arcane/geometry/GeomShapeOperation.h.


The documentation for this class was generated from the following file: