9 #include "topo/CellBase.h"
10 #include "mg/Position.h"
44 typedef std::vector<MGCellBase*>::reverse_iterator
partnerRItr;
147 virtual void free_neighbourhood(
int i,
int j=0)=0;
150 void free_partner(
const MGCellBase* cellin)
const;
156 bool is_bcell()
const{
return m_partners.size()>=1;};
182 virtual std::vector<const MGCellNB*> neighbours()
const=0;
185 virtual double parameter_error()
const=0;
192 virtual void set_extent(
MGGeometry* extent=0);
199 virtual std::ostream&
out(std::ostream&)
const;
200 virtual std::string
whoami()
const{
return "CellNB";};
222 virtual void compute_box()
const=0;
225 bool is_less_than(
const MGCellNB& cell2)
const;
245 virtual void bn_binder_tr(
const MGVector& v)=0;
246 virtual void bn_binder_tr(
double s)=0;
247 virtual void bn_binder_tr(
const MGMatrix& mat)=0;
248 virtual void bn_binder_tr(
const MGTransf& tr)=0;
251 virtual void set_box_as_null()
const=0;
254 virtual void copy_all_boundaries(
const MGCellBase& cell2)=0;
259 virtual void copy_all_boundaries(
const MGCellBase& cell2, MGCellMap& cmap)=0;
262 virtual void copy_box(
const MGCellBase& cell2)
const=0;
265 virtual void copy_perror(
const MGCellBase& cell2)
const=0;
268 void free_partner(const_partnerItr itr)
const;
272 virtual void get_all_boundary_binders(std::vector<MGCellNB*>& cvec)
const=0;
279 virtual MGGeometry* make_binder_extent()
const=0;
287 virtual void make_extent()
const=0;
291 virtual void merge_bcell(
MGCellNB* bcell2);
294 virtual void negate_boundary()=0;
bool is_bcell() const
Ask if this is binder cell.
Definition: CellNB.h:156
CellNB is a cell without boundaries(No Boundaries).
Definition: CellNB.h:38
MGBVertex is 0 manifold dimension binder cell, is an point.
Definition: BVertex.h:30
Is an abstract class and the super class of MGPVertex and MGCellNB.
Definition: CellBase.h:38
MGTransf represents a transformation of a space dimension.
Definition: Transf.h:35
const std::vector< const MGCellBase * > & member_partners() const
Obtain member partners. This must be a binder cell.
Definition: CellNB.h:170
std::vector< const MGCellBase * >::const_reverse_iterator const_partnerRItr
Definition: CellNB.h:45
std::vector< const MGCellBase * >::const_iterator const_partnerItr
Definition: CellNB.h:43
virtual MGCellBase & operator+=(const MGVector &v)=0
Object transformation.
virtual long identify_type() const =0
Return This object's typeID.
CELL_KIND
Definition: CellNB.h:47
std::vector< MGCellBase * >::reverse_iterator partnerRItr
Definition: CellNB.h:44
virtual std::string whoami() const
Definition: CellNB.h:200
const MGComplex * parent_complex() const
Obtain parent complex.
Definition: CellNB.h:188
virtual void ReadMembers(MGIfstream &buf)
Read Object's member data.
MGIfstream is a class to read the serialized data generated by MGOfstream.
Definition: Ifstream.h:30
int number_of_partner_members() const
Return nummber of partners stored in m_partners.
Definition: CellNB.h:177
MGComplex * parent_complex()
Definition: CellNB.h:189
std::vector< const MGCellBase * > & member_partners()
Definition: CellNB.h:171
Vector of a general n space dimension.
Definition: Vector.h:26
virtual std::ostream & out(std::ostream &) const
Output virtual function.
MGGeometry is an abstract class which represents a whole geometry.
Definition: Geometry.h:36
virtual MGCellBase * clone() const =0
Defines a Box of any space dimendion.
Definition: Box.h:34
virtual void negate()=0
Negate the direction of the cell.
virtual void draw3DVertex(mgVBO &vbo) const =0
friend class MGCellNB
Definition: CellBase.h:212
virtual void WriteMembers(MGOfstream &buf) const
Write Object's Member Data.
bool bn_binder_tr_necessary() const
check if boundary's binder transformation is necessary or not.
Definition: CellNB.h:213
MGEdge is an instance of MGCellNB, represents a boundary element of 2D manifold.
Definition: Edge.h:33
MGGeometry * extent()
Definition: CellNB.h:135
virtual MGCellNB * make_binder() const =0
Represent a positional data.
Definition: Position.h:28
virtual MGCellBase & operator=(const MGCellBase &gel2)
const MGBox & box() const =0
Obtain the box of the cell.
MGOfstream is a class to serialize all of the subclasses of MGGel.
Definition: Ofstream.h:31
virtual int manifold_dimension() const =0
Obtain manifold dimension.
const MGCellBase * member_partner(int i) const
Obtain the i-th member partner. This must be a binder cell.
Definition: CellNB.h:167
const MGGeometry * extent() const
Get extent geometry, may be null if this does not have extent.
Definition: CellNB.h:134
MGComplex is a container of parameter cells and binder cells.
Definition: Complex.h:25
std::vector< MGCellBase * >::iterator partnerItr
Definition: CellNB.h:42
virtual MGCellBase & operator*=(double scale)=0
virtual MGCellBase & operator-=(const MGVector &v)=0
MGGeometry * m_extent
Geometry.
Definition: CellNB.h:208
virtual const MGCellNB * star() const =0
Obtain star cells.
OpenGL 4 用描画のためのクラス, in other words, display list.
Definition: VBO.h:76
virtual MGCellBase * clone_without_boundaries() const =0
std::vector< const MGCellBase * > m_partners
vector of partner cells who share this bcell(for bcell).
Definition: CellNB.h:209
Define a unit vector, is a MGVector.
Definition: Unit_vector.h:17
MGMatrix is a matix of m by m, where m is the space dimension.
Definition: Matrix.h:30