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 "utility/interface/igroup.h"
11
12namespace itasca {
13 class IContainer;
14 class IThing;
15}
16namespace itascaxd {
17 class IRange;
18}
19
20namespace 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 std::vector<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
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 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 QString getKeywordFromType(TType type) const =0
Returns the general SEL type.
virtual IThing * getIThing()=0
Returns a IThing pointer.
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:46
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition dim.h:154
Interface for geometric objects export-imports.
namespace Itasca
Definition basememory.cpp:14
Itasca Library standard namespace, specific to 2D or 3D.
Definition icontactmodule.h:4
Definition isellist.h:31