Itasca C++ Interface
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
isellist.h
Go to the documentation of this file.
1 //isellist.h
2 #pragma once
3 
9 #include "utility/interface/igroup.h"
11 
12 namespace itasca {
13  class IContainer;
14  class IThing;
15 }
16 namespace itascaxd {
17  class IRange;
18 }
19 
20 namespace sel {
21  using namespace itasca;
22  using namespace itascaxd;
23 
24  class ISEL;
25  class ISELNode;
26 
29  class ISELList {
30  public:
31  struct SELInfo {
32  TType type_;
33  uint segments_;
34  double maxLen_;
35  quint64 cid_;
36  IGroupID group_;
37  TType femType_;
38  bool embedded_;
39  bool crossDiagonal_;
40  bool separated_; // All nodes on every element distince and new
41  bool snap_; // Snap to existing node position
42  IGroupID beginGroup_; // Group name to add to begin/end nodes (1D only)
43  IGroupID endGroup_;
44  bool groupEnds_ = true; // Whether to add group names to end nodes (1D only).
45  bool dowel_; // 2 links
46  };
47 
49  virtual const IThing *getIThing() const=0;
51  virtual IThing *getIThing()=0;
53  virtual const IContainer * getIContainer() const=0;
55  virtual IContainer * getIContainer() =0;
58  virtual const ISEL * getFirstSEL() const=0;
61  virtual ISEL * getFirstSEL()=0;
63  virtual const ISEL * findSELWithID(quint64 id) const=0;
67  virtual const ISEL * findSEL(const DVect &pos,TType type=0,double radius=limits<double>::max(),bool update=true) const=0;
71  virtual ISEL * findSEL(const DVect &pos,TType type=0,double radius=limits<double>::max(),bool update=true) =0;
72 
74  virtual QString getKeywordFromType(TType type) const=0;
75  virtual QList<const ISEL *> getAllTypes() const=0;
76  virtual const ISEL * getRegisteredType(TType type) const=0;
77  virtual quint32 getNumberRegistered() const=0;
78  virtual quint64 getNextCollectionID() const=0;
79 
81  virtual uint getGroupNotice() const=0;
83  virtual uint getPropertyNotice() const=0;
85  virtual uint getStateNotice() const=0;
87  virtual uint getForceNotice() const=0;
89  virtual uint getFISHNotice() const=0;
91  virtual uint getPressureNotice() const=0;
93  virtual uint getHideNotice() const=0;
95  virtual uint getSelectNotice() const=0;
96 
99  virtual uint claimResultantStorage()=0;
101  virtual void releaseResultantStorage(uint index)=0;
103  virtual void markItemsInRange(uint index,const IRange *ran,TType type)=0;
107  virtual bool assignSurfaceSystem(uint index,const DVect3 &x,bool exceptionsAllowed,
108  QString *error,TType type)=0;
111  virtual bool recoverStressResultants(uint index,bool exceptionsAllowed,
112  QString *error,TType type)=0;
115  virtual bool recoverStress(uint index,const double &depth,bool exceptionsAllowed,
116  QString *error,TType type)=0;
117 
118  virtual void setForceUpdate(bool b)=0;
119  virtual bool getWasUpdated() const=0;
120  };
121 } // namespace sel
122 // EoF
123 
Interface to the structural elements base class.
Definition: imodulesel.h:5
Interface to a filter, used as the main method for filtering objects.
Definition: irange.h:31
Interface to the structural elements base class.
Definition: isel.h:22
namespace Itasca
Definition: basememory.cpp:9
Base class for items that will be stored in containers.
Definition: ithing.h:31
debug checked shorthand for std::numeric_limits<T>::
Definition: limit.h:25
Definition: igroup.h:91
unsigned int TType
class type indicator
Definition: basedef.h:41
Definition: isellist.h:31
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4
Interface for containers of IThings.
Definition: icontainer.h:23
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:145
Interface to the global list of all structural elements.
Definition: isellist.h:29
Interface for geometric objects export-imports.