25#ifndef __BITPIT_CELL_HPP__
26#define __BITPIT_CELL_HPP__
30#include "bitpit_containers.hpp"
39IBinaryStream & operator>>(IBinaryStream &buf, Cell& cell);
40OBinaryStream &
operator<<(OBinaryStream &buf,
const Cell& cell);
54 Cell(
long id,
ElementType type,
bool interior =
true,
bool storeInterfaces =
true,
bool storeAjacencies =
true);
55 Cell(
long id,
ElementType type,
int connectSize,
bool interior =
true,
bool storeInterfaces =
true,
bool storeAjacencies =
true);
56 Cell(
long id,
ElementType type, std::unique_ptr<
long[]> &&connectStorage,
bool interior =
true,
bool storeInterfaces =
true,
bool storeAjacencies =
true);
63 void initialize(
long id,
ElementType type,
bool interior,
bool storeInterfaces =
true,
bool storeAjacencies =
true);
64 void initialize(
long id,
ElementType type,
int connectSize,
bool interior,
bool storeInterfaces =
true,
bool storeAjacencies =
true);
65 void initialize(
long id,
ElementType type, std::unique_ptr<
long[]> &&connectStorage,
bool interior,
bool storeInterfaces =
true,
bool storeAjacencies =
true);
71 void setInterfaces(
const std::vector<std::vector<long>> &interfaces);
88 void setAdjacencies(
const std::vector<std::vector<long>> &adjacencies);
90 void setAdjacency(
int face,
int index,
long adjacencies);
105 void display(std::ostream &out,
unsigned short int indent)
const;
120 void _initialize(
bool interior,
bool initializeInterfaces,
bool storeInterfaces,
bool initializeAdjacency,
bool storeAdjacencies);
124template<
typename QualifiedCell>
128 typedef typename ElementHalfEdge<QualifiedCell>::Winding Winding;
132 QualifiedCell &
getCell()
const;
136template<
typename QualifiedCell>
140 typedef typename ElementHalfFace<QualifiedCell>::Winding Winding;
144 QualifiedCell &
getCell()
const;
The Cell class defines the cells.
void swap(Cell &other) noexcept
bool isFaceBorder(int face) const
void initialize(long id, ElementType type, bool interior, bool storeNeighbourhood)
bool pushAdjacency(int face, long adjacency)
void setInterior(bool interior)
void deleteInterface(int face, int i)
void setInterfaces(const std::vector< std::vector< long > > &interfaces)
int findInterface(int face, int interface)
int getInterfaceCount() const
int findAdjacency(int face, int adjacency)
void resetInterfaces(bool storeInterfaces=true)
unsigned int getBinarySize() const
void resetAdjacencies(bool storeAdjacencies=true)
long getAdjacency(int face, int index=0) const
const long * getAdjacencies() const
void setInterface(int face, int index, long interface)
void setAdjacency(int face, int index, long adjacencies)
const long * getInterfaces() const
void display(std::ostream &out, unsigned short int indent) const
void deleteAdjacency(int face, int i)
int getAdjacencyCount() const
long getInterface(int face, int index=0) const
void setAdjacencies(const std::vector< std::vector< long > > &adjacencies)
bool pushInterface(int face, long interface)
The ElementHalfEdge class defines element half-edge items.
The ElementHalfFace class defines element half-faces.
The Element class provides an interface for defining elements.
Metafunction for generation of a flattened vector of vectors.
The PatchKernel class provides an interface for defining patches.
Metafunction for generating a pierced vector.
QualifiedCellHalfEdge(QualifiedCell &cell, int edge, Winding winding=Winding::WINDING_NATURAL)
QualifiedCell & getCell() const
The QualifiedCellHalfFace class defines cell half-faces.
QualifiedCellHalfFace(QualifiedCell &cell, int face, Winding winding=Winding::WINDING_NATURAL)
QualifiedCell & getCell() const
std::ostream & operator<<(std::ostream &, const std::vector< T > &)
#define BITPIT_DEPRECATED(func)