Itasca C++ Interface
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  uint32 segments_;
34  double maxLen_;
35  uint64 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  bool faceplate_;
47  bool reverseYdir_;
48  };
49 
51  virtual const IThing *getIThing() const=0;
53  virtual IThing *getIThing()=0;
55  virtual const IContainer * getIContainer() const=0;
57  virtual IContainer * getIContainer() =0;
60  virtual const ISEL * getFirstSEL() const=0;
63  virtual ISEL * getFirstSEL()=0;
65  virtual const ISEL * findSELWithID(uint64 id) const=0;
69  virtual const ISEL * findSEL(const DVect &pos, TType type=0,
70  double radius=limits<double>::max(), bool update=true) const=0;
74  virtual ISEL * findSEL(const DVect &pos, TType type=0,
75  double radius=limits<double>::max(), bool update=true) =0;
76 
78  virtual QString getKeywordFromType(TType type) const=0;
79  virtual QList<const ISEL *> getAllTypes() const=0;
80  virtual const ISEL * getRegisteredType(TType type) const=0;
81  virtual uint32 getNumberRegistered() const=0;
82  virtual uint64 getNextCollectionID() const=0;
83 
85  virtual uint32 getGroupNotice() const=0;
87  virtual uint32 getPropertyNotice() const=0;
89  virtual uint32 getStateNotice() const=0;
91  virtual uint32 getForceNotice() const=0;
93  virtual uint32 getFISHNotice() const=0;
95  virtual uint32 getPressureNotice() const=0;
97  virtual uint32 getHideNotice() const=0;
99  virtual uint32 getSelectNotice() const=0;
100 #ifdef THREED
105  virtual uint32 claimResultantStorage()=0;
107  virtual void releaseResultantStorage( uint32 index )=0;
109  virtual void markItemsInRange( uint32 index, const IRange *ran, TType type )=0;
114  virtual bool recoverSurfaceSystem( uint32 index, const DVect3 &surfX, bool exceptionsAllowed,
115  QString *error, TType type )=0;
118  virtual bool recoverStressResultants( uint32 index, bool exceptionsAllowed,
119  QString *error, TType type )=0;
124  virtual bool recoverStress( uint32 index, const double &depth, bool exceptionsAllowed,
125  QString *error, TType type )=0;
126 #endif
127  virtual void setForceUpdate(bool b)=0;
128  virtual bool getWasUpdated() const=0;
129 
130  virtual std::vector<base::PropDesc> getAvailableProperties(TType type) const =0;
131  virtual uint32 getPropertyIndexFast(const ISEL &sel,const string &name,uint32 thread) const =0;
132  virtual bool isPropertyConstant( const QString &propName, TType type ) const =0;
133  };
134 } // namespace sel
135 // EoF
136 
Definition: idef.h:50
Interface for containers of IThings.
Definition: icontainer.h:21
Definition: igroup.h:82
Base class for items that will be stored in containers.
Definition: ithing.h:30
Interface to a filter, used as the main method for filtering objects.
Definition: irange.h:32
debug checked shorthand for std::numeric_limits<T>::
Definition: limit.h:25
Interface to the structural elements base class.
Definition: isel.h:22
Interface to the global list of all structural elements.
Definition: isellist.h:29
virtual const ISEL * findSELWithID(uint64 id) const =0
Given a strucutal elemnent id, returns a const pointer to the structural element.
virtual ISEL * getFirstSEL()=0
virtual uint32 getFISHNotice() const =0
Returns the tag for the structural element extra variable change notice.
virtual uint32 getSelectNotice() const =0
Returns the tag for the structural element select change notice.
virtual IContainer * getIContainer()=0
Returns a pointer to the IContainer interface representing global list of SELs.
virtual uint32 getStateNotice() const =0
Returns the tag for the structural element state change notice.
virtual uint32 getForceNotice() const =0
Returns the tag for the structural element applied force change notice.
virtual uint32 getHideNotice() const =0
Returns the tag for the structural element hide change notice.
virtual uint32 getPressureNotice() const =0
Returns the tag for the structural element pressure change notice.
virtual uint32 getPropertyNotice() const =0
Returns the tag for the structural element property change notice.
virtual uint32 getGroupNotice() const =0
Returns the tag for the structural element group change notice.
virtual ISEL * findSEL(const DVect &pos, TType type=0, double radius=limits< double >::max(), bool update=true)=0
virtual IThing * getIThing()=0
Returns a IThing pointer.
virtual const IThing * getIThing() const =0
Returns a const IThing pointer.
virtual const ISEL * getFirstSEL() const =0
virtual const ISEL * findSEL(const DVect &pos, TType type=0, double radius=limits< double >::max(), bool update=true) const =0
virtual QString getKeywordFromType(TType type) const =0
Returns the general SEL type.
virtual const IContainer * getIContainer() const =0
Returns a const pointer to the IContainer interface representing global list of SELs.
uint32 TType
class type indicator
Definition: basedef.h:46
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:150
Interface for geometric objects export-imports.
namespace Itasca
Definition: basememory.cpp:10
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4
Definition: isellist.h:31