LR-splines  0.5
Meshline.h
Go to the documentation of this file.
00001 #ifndef MESHLINE_H
00002 #define MESHLINE_H
00003 
00004 #include "Streamable.h"
00005 #include <vector>
00006 
00007 namespace LR {
00008 
00009 enum meshlineExtension {
00010         ELONGATION,
00011         MERGING,
00012         NEWLINE,
00013         INITIAL
00014 };
00015 
00016 class Basisfunction;
00017 class Element;
00018 
00019 class Meshline : public Streamable {
00020 
00021 public:
00022         Meshline();
00023         Meshline(bool span_u_line, double const_par, double start, double stop, int multiplicity);
00024         ~Meshline();
00025         Meshline* copy();
00026 
00027         int nKnotsIn(Basisfunction *basis) const;
00028         bool splits(Basisfunction *basis) const;
00029         bool touches(Basisfunction *basis) const;
00030         bool splits(Element *el) const;
00031         bool touches(Element *el) const;
00032 
00033         bool is_spanning_u() const;
00034 
00035         bool operator==(const Meshline &other) const;
00036 
00037         virtual void read(std::istream &is);
00038         virtual void write(std::ostream &os) const;
00039         virtual void writeMore(std::ostream &os) const;
00040 
00041 // private:
00042         bool span_u_line_;
00043         double const_par_;
00044         double start_;
00045         double stop_;
00046         int multiplicity_;
00047 
00048 // even more private (only used for linear independence testing)
00049         enum meshlineExtension type_;
00050 
00051 };
00052 
00053 } // end namespace LR
00054 
00055 #endif
00056