Itasca C++ Interface
Loading...
Searching...
No Matches
isellist.h
Go to the documentation of this file.
1//isellist.h
2#pragma once
3
9#include "base/src/property.h"
10#include "utility/interface/igroup.h"
12
13namespace itasca {
14 class IContainer;
15 class IThing;
16}
17namespace itascaxd {
18 class IRange;
19}
20
21namespace sel {
22 using namespace itasca;
23 using namespace itascaxd;
24
25 class ISEL;
26 class ISELNode;
27
30 class ISELList {
31 public:
32 struct SELInfo {
33 TType type_;
34 uint32 segments_;
35 double maxLen_;
36 uint64 cid_;
37 IGroupID group_;
38 TType femType_;
39 bool embedded_;
40 bool crossDiagonal_;
41 bool separated_; // All nodes on every element distince and new
42 bool snap_; // Snap to existing node position
43 IGroupID beginGroup_; // Group name to add to begin/end nodes (1D only)
44 IGroupID endGroup_;
45 bool groupEnds_ = true; // Whether to add group names to end nodes (1D only).
46 bool dowel_; // 2 links
47 bool faceplate_;
48 bool reverseYdir_;
49 };
50
52 virtual const IThing *getIThing() const=0;
54 virtual IThing *getIThing()=0;
56 virtual const IContainer * getIContainer() const=0;
58 virtual IContainer * getIContainer() =0;
61 virtual const ISEL * getFirstSEL() const=0;
64 virtual ISEL * getFirstSEL()=0;
66 virtual const ISEL * findSELWithID(uint64 id) const=0;
70 virtual const ISEL * findSEL(const DVect &pos, TType type=0,
71 double radius=limits<double>::max(), bool update=true) const=0;
75 virtual ISEL * findSEL(const DVect &pos, TType type=0,
76 double radius=limits<double>::max(), bool update=true) =0;
77
79 virtual string getKeywordFromType(TType type) const=0;
80 virtual std::vector<const ISEL *> getAllTypes() const=0;
81 virtual const ISEL * getRegisteredType(TType type) const=0;
82 virtual uint32 getNumberRegistered() const=0;
83 virtual uint64 getNextCollectionID() const=0;
84
86 virtual uint32 getGroupNotice() const=0;
88 virtual uint32 getPropertyNotice() const=0;
90 virtual uint32 getStateNotice() const=0;
92 virtual uint32 getForceNotice() const=0;
94 virtual uint32 getFISHNotice() const=0;
96 virtual uint32 getPressureNotice() const=0;
98 virtual uint32 getHideNotice() const=0;
100 virtual uint32 getSelectNotice() const=0;
101#ifdef THREED
106 virtual uint32 claimResultantStorage()=0;
108 virtual void releaseResultantStorage( uint32 index )=0;
110 virtual void markItemsInRange( uint32 index, const IRange *ran, TType type )=0;
115 virtual bool recoverSurfaceSystem( uint32 index, const DVect3 &surfX, bool exceptionsAllowed,
116 string *error, TType type )=0;
119 virtual bool recoverStressResultants( uint32 index, bool exceptionsAllowed,
120 string *error, TType type )=0;
125 virtual bool recoverStress( uint32 index, const double &depth, bool exceptionsAllowed,
126 string *error, TType type )=0;
127#endif
128 virtual void setForceUpdate(bool b)=0;
129 virtual bool getWasUpdated() const=0;
130
131 virtual std::vector<base::PropDesc> getAvailableProperties(TType type) const =0;
132 virtual uint32 getPropertyIndexFast(const ISEL &sel,const string &name,uint32 thread) const =0;
133 virtual bool isPropertyConstant( const string &propName, TType type ) const =0;
134 };
135} // namespace sel
136// EoF
137
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:31
Interface to a filter, used as the main method for filtering objects.
Definition irange.h:31
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:30
virtual const IContainer * getIContainer() const =0
Returns a const pointer to the IContainer interface representing global list of SELs.
virtual const ISEL * findSELWithID(uint64 id) const =0
Given a strucutal elemnent id, returns a const pointer to the structural element.
virtual uint32 getFISHNotice() const =0
Returns the tag for the structural element extra variable change notice.
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 uint32 getSelectNotice() const =0
Returns the tag for the structural element select change notice.
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 IContainer * getIContainer()=0
Returns a pointer to the IContainer interface representing global list of SELs.
virtual const IThing * getIThing() const =0
Returns a const IThing pointer.
virtual ISEL * getFirstSEL()=0
virtual IThing * getIThing()=0
Returns a IThing pointer.
virtual string getKeywordFromType(TType type) const =0
Returns the general SEL type.
virtual ISEL * findSEL(const DVect &pos, TType type=0, double radius=limits< double >::max(), bool update=true)=0
uint32 TType
class type indicator
Definition basedef.h:47
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition dim.h:156
Interface for geometric objects export-imports.
namespace Itasca
Definition basememory.cpp:14
Itasca Library standard namespace, specific to 2D or 3D.
Definition icontactmodule.h:6
Definition isellist.h:32