Itasca C++ Interface
Loading...
Searching...
No Matches
isellist.h
Go to the documentation of this file.
1//isellist.h
2#pragma once
3
8
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 IRange *range_; // required when you have two coincident gps and you want to pick the right one
50 };
51
53 virtual const IThing *getIThing() const=0;
55 virtual IThing *getIThing()=0;
57 virtual const IContainer * getIContainer() const=0;
59 virtual IContainer * getIContainer() =0;
62 virtual const ISEL * getFirstSEL() const=0;
65 virtual ISEL * getFirstSEL()=0;
67 virtual const ISEL * findSELWithID(uint64 id) const=0;
71 virtual const ISEL * findSEL(const DVect &pos, TType type=0,
72 double radius=limits<double>::max(), bool update=true) const=0;
76 virtual ISEL * findSEL(const DVect &pos, TType type=0,
77 double radius=limits<double>::max(), bool update=true) =0;
78
80 virtual string getKeywordFromType(TType type) const=0;
81 virtual std::vector<const ISEL *> getAllTypes() const=0;
82 virtual const ISEL * getRegisteredType(TType type) const=0;
83 virtual uint32 getNumberRegistered() const=0;
84 virtual uint64 getNextCollectionID() const=0;
85
87 virtual uint32 getGroupNotice() const=0;
89 virtual uint32 getPropertyNotice() const=0;
91 virtual uint32 getStateNotice() const=0;
93 virtual uint32 getForceNotice() const=0;
95 virtual uint32 getFISHNotice() const=0;
97 virtual uint32 getPressureNotice() const=0;
99 virtual uint32 getHideNotice() const=0;
101 virtual uint32 getSelectNotice() const=0;
102#ifdef THREED
107 virtual uint32 claimResultantStorage()=0;
109 virtual void releaseResultantStorage( uint32 index )=0;
111 virtual void markItemsInRange( uint32 index, const IRange *ran, TType type )=0;
116 virtual bool recoverSurfaceSystem( uint32 index, const DVect3 &surfX, bool exceptionsAllowed,
117 string *error, TType type )=0;
120 virtual bool recoverStressResultants( uint32 index, bool exceptionsAllowed,
121 string *error, TType type )=0;
126 virtual bool recoverStress( uint32 index, const double &depth, bool exceptionsAllowed,
127 string *error, TType type )=0;
128#endif
129 virtual void setForceUpdate(bool b)=0;
130 virtual bool getWasUpdated() const=0;
131
132 virtual std::vector<base::PropDesc> getAvailableProperties(TType type) const =0;
133 virtual uint32 getPropertyIndexFast(const ISEL &sel,const string &name,uint32 thread) const =0;
134 virtual bool isPropertyConstant( const string &propName, TType type ) const =0;
135 };
136} // namespace sel
137// EoF
138
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
Interface to provide access to structural element nodes.
Definition iselnode.h:44
uint32 TType
class type indicator
Definition basedef.h:47
#define itascaxd
Expands to itasca2d in 2D, itasca3d in 3D, for use as a namespace name....
Definition dim.h:181
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