10 #include "base/src/callback.h" 12 #include "modelsutil/interface/imodellist.h" 13 #include "utility/interface/igroup.h" 29 class IFetchFluidProperty;
30 class IFetchThermalProperty;
40 virtual const IThing * getIThing()
const=0;
42 virtual IThing * getIThing()=0;
44 virtual const IContainer * getIContainer()
const=0;
49 virtual const IZone * getFirstZone()
const=0;
52 virtual IZone * getFirstZone()=0;
54 virtual quint32 getZoneType()
const=0;
56 virtual quint32 getFaceType()
const=0;
58 virtual const IZone * findZoneWithID(quint64
id)
const=0;
60 virtual IZone * findZoneWithID(quint64
id)=0;
70 virtual quint64 getNZone()
const=0;
75 virtual IZone * findZoneContaining(
const DVect &v,
bool bHideMechNull=
false,
bool bHideFluidNull=
false,
bool bHideThermNull=
false)
const =0;
82 virtual IZone * findZoneNearestLive(
const DVect &dv3,
bool bMech,
bool bFluid,
bool bTherm,
bool bOr) =0;
84 virtual uint getZoneExtraNotice()
const=0;
86 virtual uint getModelNotice()
const=0;
88 virtual uint getPropertyNotice()
const=0;
90 virtual uint getStateNotice()
const=0;
92 virtual uint getDensityNotice()
const=0;
94 virtual uint getGroupNotice()
const=0;
96 virtual uint getStressNotice()
const=0;
98 virtual uint getSpecificDischargeNotice()
const =0;
100 virtual uint getThermalFluxNotice()
const =0;
102 virtual uint getFaceGroupNotice()
const=0;
104 virtual uint getFaceExtraNotice()
const=0;
106 virtual uint getHideNotice()
const=0;
108 virtual uint getSelectNotice()
const=0;
110 virtual uint getFaceHideNotice()
const=0;
112 virtual uint getFaceSelectNotice()
const=0;
113 virtual uint getMultiplierNotice()
const=0;
114 virtual uint getFluidDensityNotice()
const=0;
116 virtual quint64 getNumberFacesHidden()
const=0;
118 virtual quint64 getNumberFacesSelected()
const=0;
122 virtual std::set<const IGroup *> getFaceGroupsForSlot(
const ISlotID &slot)
const=0;
133 virtual int claimBit()
const=0;
135 virtual void releaseBit(
int bit)
const=0;
146 virtual int claimValue()
const=0;
148 virtual void releaseValue(
int bit)
const=0;
151 virtual IZoneData * createIZoneData(QObject *parent=0)
const=0;
153 virtual QStringList getAllMechanicalModels()
const=0;
155 virtual QStringList getAllMechanicalProperties()
const=0;
162 virtual const IFace * makeFace(
const IZone *z,quint32 side)
const=0;
165 virtual IFace * makeFace(
IZone *z,quint32 side)=0;
169 virtual QPair<IZone *,quint32> findIFace(
const DVect &base,
const DVect &dir,
bool useHiddenZones=
false,
171 bool useHiddenFaces=
false)=0;
172 virtual QString getZoneGroupsOnSides(std::set<IGroupID> *zf1GroupList,
173 std::set<IGroupID> *zf2GroupList)
const=0;
176 virtual void threadedCallbackFunction(
void (*
function)(
const IZone *,quint32,quint32,
void *),
void *v=
nullptr,
bool useThreads=
true)
const=0;
177 template <
class S,
void (S::*MFP)(const IZone *,qu
int32,qu
int32,
void *)>
178 void threadedCallbackMethod(S *s,
void *v=
nullptr,
bool useThreads=
true)
const;
186 template <
class S,
void (S::*MFP)(const FaceGroupCallbackData *,qu
int32,qu
int32)>
187 void threadedCallbackMethodFaceGroups(S *s,
bool useThreads=
true)
const;
194 template <
class S,
void (S::*MFP)(const FaceSelectCallbackData *,qu
int32,qu
int32)>
195 void threadedCallbackMethodFaceSelect(S *s,
bool useThreads=
true)
const;
198 template <
class S,
void (S::*MFP)(const IZone *,qu
int32,qu
int32,
void *)>
199 void IZoneList::threadedCallbackMethod(S *s,
void *v,
bool useThreads)
const {
201 threadedCallbackObject(callback,v,useThreads);
204 template <
class S,
void (S::*MFP)(const IZoneList::FaceGroupCallbackData *,qu
int32,qu
int32)>
205 void IZoneList::threadedCallbackMethodFaceGroups(S *s,
bool useThreads)
const {
207 threadedCallbackObjectFaceGroups(callback,useThreads);
210 template <
class S,
void (S::*MFP)(const IZoneList::FaceSelectCallbackData *,qu
int32,qu
int32)>
211 void IZoneList::threadedCallbackMethodFaceSelect(S *s,
bool useThreads)
const {
213 threadedCallbackObjectFaceSelect(callback,useThreads);
Definition: callback.h:30
namespace Itasca
Definition: basememory.cpp:9
Base class for items that will be stored in containers.
Definition: ithing.h:31
Definition: izonelist.h:189
Interface for accessing the global list of zones, IZoneList.
Definition: izonelist.h:36
Definition: ifetchfluidproperty.h:6
An array class that attempts to minimize unnecessary heap access.
Definition: izonelist.h:180
debug checked shorthand for std::numeric_limits<T>::
Definition: limit.h:25
Interface to provide access to a zone.
Definition: izone.h:116
Access to zone scalar data.
Definition: izonedata.h:24
Definition: callback.h:122
Interface to zone faces.
Definition: iface.h:23
Definition: ifetchthermalproperty.h:6
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
Definition: imodellist.h:29
Definition: ifetchproperty.h:9
Definition: callback.h:24
Definition: callback.h:113