OpenClonk
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros
C4FindObjectAtRect Class Reference

#include <C4FindObject.h>

Inheritance diagram for C4FindObjectAtRect:
[legend]
Collaboration diagram for C4FindObjectAtRect:
[legend]

Public Member Functions

 C4FindObjectAtRect (int32_t x, int32_t y, int32_t wdt, int32_t hgt)
 
int32_t Count (const C4ObjectList &Objs)
 
int32_t Count (const C4ObjectList &Objs, const C4LSectors &Sct)
 
C4ObjectFind (const C4ObjectList &Objs)
 
C4ObjectFind (const C4ObjectList &Objs, const C4LSectors &Sct)
 
C4ValueArrayFindMany (const C4ObjectList &Objs)
 
C4ValueArrayFindMany (const C4ObjectList &Objs, const C4LSectors &Sct)
 
void SetSort (C4SortObject *pToSort)
 

Static Public Member Functions

static C4FindObjectCreateByValue (const C4Value &Data, C4SortObject **ppSortObj=nullptr, const C4Object *context=nullptr, bool *has_layer_check=nullptr)
 

Protected Member Functions

bool Check (C4Object *pObj) override
 
C4RectGetBounds () override
 
bool UseShapes () override
 
virtual bool IsImpossible ()
 
virtual bool IsEnsured ()
 

Detailed Description

Definition at line 212 of file C4FindObject.h.

Constructor & Destructor Documentation

C4FindObjectAtRect::C4FindObjectAtRect ( int32_t  x,
int32_t  y,
int32_t  wdt,
int32_t  hgt 
)
inline

Definition at line 215 of file C4FindObject.h.

216  : bounds(x, y, wdt, hgt) { }

Member Function Documentation

bool C4FindObjectAtRect::Check ( C4Object pObj)
overrideprotectedvirtual

Implements C4FindObject.

Definition at line 654 of file C4FindObject.cpp.

References C4Object::GetX(), C4Object::GetY(), C4Rect::Overlap(), C4Object::Shape, C4Rect::x, and C4Rect::y.

655 {
656  C4Rect rcShapeBounds = pObj->Shape;
657  rcShapeBounds.x += pObj->GetX(); rcShapeBounds.y += pObj->GetY();
658  return !!rcShapeBounds.Overlap(bounds);
659 }
int32_t GetY() const
Definition: C4Object.h:287
Definition: C4Rect.h:27
int32_t y
Definition: C4Rect.h:30
int32_t GetX() const
Definition: C4Object.h:286
int32_t x
Definition: C4Rect.h:30
bool Overlap(C4Rect &rTarget)
Definition: C4Rect.cpp:91
C4Shape Shape
Definition: C4Object.h:148

Here is the call graph for this function:

int32_t C4FindObject::Count ( const C4ObjectList Objs)
inherited

Definition at line 241 of file C4FindObject.cpp.

References C4FindObject::Check(), C4FindObject::IsEnsured(), C4FindObject::IsImpossible(), and C4ObjectList::ObjectCount().

Referenced by C4FindObject::Count().

242 {
243  // Trivial cases
244  if (IsImpossible())
245  return 0;
246  if (IsEnsured())
247  return Objs.ObjectCount();
248  // Count
249  int32_t iCount = 0;
250  for (C4Object *obj : Objs)
251  if (obj->Status && Check(obj))
252  iCount++;
253  return iCount;
254 }
virtual bool IsEnsured()
Definition: C4FindObject.h:97
virtual bool IsImpossible()
Definition: C4FindObject.h:96
int ObjectCount(C4ID id=C4ID::None) const
virtual bool Check(C4Object *pObj)=0

Here is the call graph for this function:

Here is the caller graph for this function:

int32_t C4FindObject::Count ( const C4ObjectList Objs,
const C4LSectors Sct 
)
inherited

Definition at line 308 of file C4FindObject.cpp.

References C4FindObject::Check(), C4FindObject::Count(), C4LArea::FirstObjects(), C4LArea::FirstObjectShapes(), C4FindObject::GetBounds(), C4GameObjects::GetNextMarker(), C4FindObject::IsEnsured(), C4FindObject::IsImpossible(), C4LArea::Next(), C4LArea::NextObjects(), C4LArea::NextObjectShapes(), C4ObjectList::ObjectCount(), Objects, C4LSector::ObjectShapes, C4GameObjects::Sectors, and C4FindObject::UseShapes().

309 {
310  // Trivial cases
311  if (IsImpossible())
312  return 0;
313  if (IsEnsured())
314  return Objs.ObjectCount();
315  // Check bounds
316  C4Rect *pBounds = GetBounds();
317  if (!pBounds)
318  return Count(Objs);
319  else if (UseShapes())
320  {
321  // Get area
322  C4LArea Area(&::Objects.Sectors, *pBounds); C4LSector *pSct;
323  C4ObjectList *pLst = Area.FirstObjectShapes(&pSct);
324  // Check if a single-sector check is enough
325  if (!Area.Next(pSct))
326  return Count(pSct->ObjectShapes);
327  // Create marker, count over all areas
328  uint32_t iMarker = ::Objects.GetNextMarker();
329  int32_t iCount = 0;
330  for (; pLst; pLst=Area.NextObjectShapes(pLst, &pSct))
331  for (C4Object *obj : Objs)
332  if (obj->Status)
333  if (obj->Marker != iMarker)
334  {
335  obj->Marker = iMarker;
336  if (Check(obj))
337  iCount++;
338  }
339  return iCount;
340  }
341  else
342  {
343  // Count objects per area
344  C4LArea Area(&::Objects.Sectors, *pBounds); C4LSector *pSct;
345  int32_t iCount = 0;
346  for (C4ObjectList *pLst=Area.FirstObjects(&pSct); pLst; pLst=Area.NextObjects(pLst, &pSct))
347  iCount += Count(*pLst);
348  return iCount;
349  }
350 }
virtual bool UseShapes()
Definition: C4FindObject.h:95
virtual bool IsEnsured()
Definition: C4FindObject.h:97
Definition: C4Rect.h:27
virtual C4Rect * GetBounds()
Definition: C4FindObject.h:94
uint32_t GetNextMarker()
virtual bool IsImpossible()
Definition: C4FindObject.h:96
C4ObjectList ObjectShapes
Definition: C4Sector.h:49
int32_t Count(const C4ObjectList &Objs)
C4LSectors Sectors
Definition: C4GameObjects.h:42
int ObjectCount(C4ID id=C4ID::None) const
virtual bool Check(C4Object *pObj)=0
C4GameObjects Objects
Definition: C4Globals.cpp:48

Here is the call graph for this function:

C4FindObject * C4FindObject::CreateByValue ( const C4Value Data,
C4SortObject **  ppSortObj = nullptr,
const C4Object context = nullptr,
bool *  has_layer_check = nullptr 
)
staticinherited

Definition at line 33 of file C4FindObject.cpp.

References C4FindObject::C4FindObjectAnd, C4FindObject::C4FindObjectNot, C4FindObject::C4FindObjectOr, C4FO_Action, C4FO_ActionTarget, C4FO_And, C4FO_AnyContainer, C4FO_AnyLayer, C4FO_AtPoint, C4FO_AtRect, C4FO_Category, C4FO_Container, C4FO_Controller, C4FO_Distance, C4FO_Exclude, C4FO_Func, C4FO_ID, C4FO_InArray, C4FO_InRect, C4FO_Layer, C4FO_Not, C4FO_OCF, C4FO_OnLine, C4FO_Or, C4FO_Owner, C4FO_Procedure, C4FO_Property, C4SO_First, C4SO_Last, Clamp(), C4SortObject::CreateByValue(), C4Value::getArray(), C4String::GetCStr(), C4ValueArray::GetSize(), C4Object::GetX(), C4Object::GetY(), iSize, and C4FindObjectFunc::SetPar().

Referenced by CreateCriterionsFromPars().

34 {
35  // Must be an array
36  C4ValueArray *pArray = C4Value(DataVal).getArray();
37  if (!pArray) return nullptr;
38 
39  const C4ValueArray &Data = *pArray;
40  int32_t iType = Data[0].getInt();
41  if (Inside<int32_t>(iType, C4SO_First, C4SO_Last))
42  {
43  // this is not a FindObject but a sort condition!
44  // sort condition not desired here?
45  if (!ppSortObj) return nullptr;
46  // otherwise, create it!
47  *ppSortObj = C4SortObject::CreateByValue(iType, Data, context);
48  // done
49  return nullptr;
50  }
51 
52  switch (iType)
53  {
54  case C4FO_Not:
55  {
56  // Create child condition
57  C4FindObject *pCond = C4FindObject::CreateByValue(Data[1], nullptr, context, has_layer_check);
58  if (!pCond) return nullptr;
59  // wrap
60  return new C4FindObjectNot(pCond);
61  }
62 
63  case C4FO_And: case C4FO_Or:
64  {
65  // Trivial case (one condition)
66  if (Data.GetSize() == 2)
67  return C4FindObject::CreateByValue(Data[1], nullptr, context, has_layer_check);
68  // Create all childs
69  int32_t i;
70  C4FindObject **ppConds = new C4FindObject *[Data.GetSize() - 1];
71  for (i = 0; i < Data.GetSize() - 1; i++)
72  ppConds[i] = C4FindObject::CreateByValue(Data[i + 1], nullptr, context, has_layer_check);
73  // Count real entries, move them to start of list
74  int32_t iSize = 0;
75  for (i = 0; i < Data.GetSize() - 1; i++)
76  if (ppConds[i])
77  if (iSize++ != i)
78  ppConds[iSize-1] = ppConds[i];
79  // Create
80  if (iType == C4FO_And)
81  return new C4FindObjectAnd(iSize, ppConds);
82  else
83  return new C4FindObjectOr(iSize, ppConds);
84  }
85 
86  case C4FO_Exclude:
87  return new C4FindObjectExclude(Data[1].getObj());
88 
89  case C4FO_ID:
90  return new C4FindObjectDef(Data[1].getPropList());
91 
92 
93  // #973: For all criteria using coordinates: If FindObject et al. are called in object context, offset by object center
94  case C4FO_InRect:
95  {
96  int32_t x = Data[1].getInt();
97  int32_t y = Data[2].getInt();
98  int32_t w = Data[3].getInt();
99  int32_t h = Data[4].getInt();
100  if (context)
101  {
102  x += context->GetX();
103  y += context->GetY();
104  }
105  return new C4FindObjectInRect(C4Rect(x, y, w, h));
106  }
107 
108  case C4FO_AtPoint:
109  {
110  int32_t x = Data[1].getInt();
111  int32_t y = Data[2].getInt();
112  if (context)
113  {
114  x += context->GetX();
115  y += context->GetY();
116  }
117  return new C4FindObjectAtPoint(x, y);
118  }
119 
120  case C4FO_AtRect:
121  {
122  int32_t x = Data[1].getInt();
123  int32_t y = Data[2].getInt();
124  int32_t w = Data[3].getInt();
125  int32_t h = Data[4].getInt();
126  if (context)
127  {
128  x += context->GetX();
129  y += context->GetY();
130  }
131  return new C4FindObjectAtRect(x, y, w, h);
132  }
133 
134  case C4FO_OnLine:
135  {
136  int32_t x1 = Data[1].getInt();
137  int32_t y1 = Data[2].getInt();
138  int32_t x2 = Data[3].getInt();
139  int32_t y2 = Data[4].getInt();
140  if (context)
141  {
142  x1 += context->GetX();
143  x2 += context->GetX();
144  y1 += context->GetY();
145  y2 += context->GetY();
146  }
147  return new C4FindObjectOnLine(x1, y1, x2, y2);
148  }
149 
150  case C4FO_Distance:
151  {
152  int32_t x = Data[1].getInt();
153  int32_t y = Data[2].getInt();
154  if (context)
155  {
156  x += context->GetX();
157  y += context->GetY();
158  }
159  return new C4FindObjectDistance(x, y, Data[3].getInt());
160  }
161 
162  case C4FO_OCF:
163  return new C4FindObjectOCF(Data[1].getInt());
164 
165  case C4FO_Category:
166  return new C4FindObjectCategory(Data[1].getInt());
167 
168  case C4FO_Action:
169  {
170  C4String *pStr = Data[1].getStr();
171  if (!pStr) return nullptr;
172  // Don't copy, it should be safe
173  return new C4FindObjectAction(pStr->GetCStr());
174  }
175 
176  case C4FO_Func:
177  {
178  // Get function name
179  C4String *pStr = Data[1].getStr();
180  if (!pStr) return nullptr;
181  // Construct
182  C4FindObjectFunc *pFO = new C4FindObjectFunc(pStr);
183  // Add parameters
184  for (int i = 2; i < Data.GetSize(); i++)
185  pFO->SetPar(i - 2, Data[i]);
186  // Done
187  return pFO;
188  }
189 
190  case C4FO_ActionTarget:
191  {
192  int index = 0;
193  if (Data.GetSize() >= 3)
194  index = Clamp(Data[2].getInt(), 0, 1);
195  return new C4FindObjectActionTarget(Data[1].getObj(), index);
196  }
197 
198  case C4FO_Procedure:
199  return new C4FindObjectProcedure(Data[1].getStr());
200 
201  case C4FO_Container:
202  return new C4FindObjectContainer(Data[1].getObj());
203 
204  case C4FO_AnyContainer:
205  return new C4FindObjectAnyContainer();
206 
207  case C4FO_Owner:
208  return new C4FindObjectOwner(Data[1].getInt());
209 
210  case C4FO_Controller:
211  return new C4FindObjectController(Data[1].getInt());
212 
213  case C4FO_Layer:
214  // explicit layer check given. do not add implicit layer check
215  if (has_layer_check) *has_layer_check = true;
216  return new C4FindObjectLayer(Data[1].getObj());
217 
218  case C4FO_InArray:
219  return new C4FindObjectInArray(Data[1].getArray());
220 
221  case C4FO_Property:
222  {
223  // Get property name
224  C4String *pStr = Data[1].getStr();
225  if (!pStr) return nullptr;
226  // Construct
228  // Done
229  return pFO;
230  }
231 
232  case C4FO_AnyLayer:
233  // do not add implicit layer check
234  if (has_layer_check) *has_layer_check = true;
235  return nullptr;
236 
237  }
238  return nullptr;
239 }
int32_t GetY() const
Definition: C4Object.h:287
friend class C4FindObjectNot
Definition: C4FindObject.h:70
static C4FindObject * CreateByValue(const C4Value &Data, C4SortObject **ppSortObj=nullptr, const C4Object *context=nullptr, bool *has_layer_check=nullptr)
const char * GetCStr() const
Definition: C4StringTable.h:49
Definition: C4Rect.h:27
T Clamp(T bval, T lbound, T rbound)
Definition: Standard.h:44
friend class C4FindObjectAnd
Definition: C4FindObject.h:71
int32_t GetX() const
Definition: C4Object.h:286
C4ValueArray * getArray() const
Definition: C4Value.h:118
int32_t GetSize() const
Definition: C4ValueArray.h:36
void SetPar(int i, const C4Value &val)
friend class C4FindObjectOr
Definition: C4FindObject.h:72
static C4SortObject * CreateByValue(const C4Value &Data, const C4Object *context=nullptr)
int iSize
Definition: TstC4NetIO.cpp:32

Here is the call graph for this function:

Here is the caller graph for this function:

C4Object * C4FindObject::Find ( const C4ObjectList Objs)
inherited

Definition at line 256 of file C4FindObject.cpp.

References C4FindObject::Check(), C4SortObject::Compare(), and C4FindObject::IsImpossible().

Referenced by C4FindObject::Find().

257 {
258  // Trivial case
259  if (IsImpossible())
260  return nullptr;
261  // Search
262  // Double-check object status, as object might be deleted after Check()!
263  C4Object *pBestResult = nullptr;
264  for (C4Object *obj : Objs)
265  if (obj->Status)
266  if (Check(obj))
267  if (obj->Status)
268  {
269  // no sorting: Use first object found
270  if (!pSort) return obj;
271  // Sorting: Check if found object is better
272  if (!pBestResult || pSort->Compare(obj, pBestResult) > 0)
273  if (obj->Status)
274  pBestResult = obj;
275  }
276  return pBestResult;
277 }
virtual int32_t Compare(C4Object *pObj1, C4Object *pObj2)=0
virtual bool IsImpossible()
Definition: C4FindObject.h:96
virtual bool Check(C4Object *pObj)=0

Here is the call graph for this function:

Here is the caller graph for this function:

C4Object * C4FindObject::Find ( const C4ObjectList Objs,
const C4LSectors Sct 
)
inherited

Definition at line 352 of file C4FindObject.cpp.

References C4SortObject::Compare(), C4FindObject::Find(), C4LArea::FirstObjects(), C4LArea::FirstObjectShapes(), C4FindObject::GetBounds(), C4FindObject::IsImpossible(), C4LArea::NextObjects(), C4LArea::NextObjectShapes(), Objects, C4GameObjects::Sectors, C4PropList::Status, and C4FindObject::UseShapes().

353 {
354  // Trivial case
355  if (IsImpossible())
356  return nullptr;
357  C4Object *pBestResult = nullptr;
358  // Check bounds
359  C4Rect *pBounds = GetBounds();
360  if (!pBounds)
361  return Find(Objs);
362  // Traverse areas, return first matching object w/o sort or best with sort
363  else if (UseShapes())
364  {
365  C4LArea Area(&::Objects.Sectors, *pBounds); C4LSector *pSct;
366  C4Object *pObj;
367  for (C4ObjectList *pLst=Area.FirstObjectShapes(&pSct); pLst; pLst=Area.NextObjectShapes(pLst, &pSct))
368  if ((pObj = Find(*pLst)))
369  {
370  if (!pSort)
371  return pObj;
372  else if (!pBestResult || pSort->Compare(pObj, pBestResult) > 0)
373  if (pObj->Status)
374  pBestResult = pObj;
375  }
376  }
377  else
378  {
379  C4LArea Area(&::Objects.Sectors, *pBounds); C4LSector *pSct;
380  C4Object *pObj;
381  for (C4ObjectList *pLst=Area.FirstObjects(&pSct); pLst; pLst=Area.NextObjects(pLst, &pSct))
382  {
383  if ((pObj = Find(*pLst)))
384  {
385  if (!pSort)
386  return pObj;
387  else if (!pBestResult || pSort->Compare(pObj, pBestResult) > 0)
388  if (pObj->Status)
389  pBestResult = pObj;
390  }
391  }
392  }
393  return pBestResult;
394 }
virtual bool UseShapes()
Definition: C4FindObject.h:95
Definition: C4Rect.h:27
virtual C4Rect * GetBounds()
Definition: C4FindObject.h:94
virtual int32_t Compare(C4Object *pObj1, C4Object *pObj2)=0
virtual bool IsImpossible()
Definition: C4FindObject.h:96
int32_t Status
Definition: C4PropList.h:168
C4LSectors Sectors
Definition: C4GameObjects.h:42
C4Object * Find(const C4ObjectList &Objs)
C4GameObjects Objects
Definition: C4Globals.cpp:48

Here is the call graph for this function:

C4ValueArray * C4FindObject::FindMany ( const C4ObjectList Objs)
inherited

Definition at line 280 of file C4FindObject.cpp.

References C4VObj(), C4FindObject::Check(), C4ValueArray::GetSize(), C4FindObject::IsImpossible(), iSize, C4ValueArray::SetSize(), and C4SortObject::SortObjects().

Referenced by C4EditCursor::DoContextMenu(), C4FindObject::FindMany(), and C4Landscape::P::PrepareFreeShape().

281 {
282  // Trivial case
283  if (IsImpossible())
284  return new C4ValueArray();
285  // Set up array
286  C4ValueArray *pArray = new C4ValueArray(32);
287  int32_t iSize = 0;
288  // Search
289  for (C4Object *obj : Objs)
290  if (obj->Status)
291  if (Check(obj))
292  {
293  // Grow the array, if neccessary
294  if (iSize >= pArray->GetSize())
295  pArray->SetSize(iSize * 2);
296  // Add object
297  (*pArray)[iSize++] = C4VObj(obj);
298  }
299  // Shrink array
300  pArray->SetSize(iSize);
301  // Recheck object status (may shrink array again)
302  CheckObjectStatus(pArray);
303  // Apply sorting
304  if (pSort) pSort->SortObjects(pArray);
305  return pArray;
306 }
void SortObjects(C4ValueArray *pArray)
C4Value C4VObj(C4Object *pObj)
Definition: C4Value.cpp:88
void SetSize(int32_t inSize)
virtual bool IsImpossible()
Definition: C4FindObject.h:96
int32_t GetSize() const
Definition: C4ValueArray.h:36
virtual bool Check(C4Object *pObj)=0
int iSize
Definition: TstC4NetIO.cpp:32

Here is the call graph for this function:

Here is the caller graph for this function:

C4ValueArray * C4FindObject::FindMany ( const C4ObjectList Objs,
const C4LSectors Sct 
)
inherited

Definition at line 397 of file C4FindObject.cpp.

References C4VObj(), C4FindObject::Check(), C4FindObject::FindMany(), C4LArea::FirstObjects(), C4LArea::FirstObjectShapes(), C4FindObject::GetBounds(), C4GameObjects::GetNextMarker(), C4ValueArray::GetSize(), C4FindObject::IsImpossible(), iSize, C4LArea::Next(), C4LArea::NextObjects(), C4LArea::NextObjectShapes(), Objects, C4LSector::ObjectShapes, C4GameObjects::Sectors, C4ValueArray::SetSize(), C4SortObject::SortObjects(), and C4FindObject::UseShapes().

398 {
399  // Trivial case
400  if (IsImpossible())
401  return new C4ValueArray();
402  C4Rect *pBounds = GetBounds();
403  if (!pBounds)
404  return FindMany(Objs);
405  // Prepare for array that may be generated
406  C4ValueArray *pArray; int32_t iSize;
407  // Check shape lists?
408  if (UseShapes())
409  {
410  // Get area
411  C4LArea Area(&::Objects.Sectors, *pBounds); C4LSector *pSct;
412  C4ObjectList *pLst = Area.FirstObjectShapes(&pSct);
413  // Check if a single-sector check is enough
414  if (!Area.Next(pSct))
415  return FindMany(pSct->ObjectShapes);
416  // Set up array
417  pArray = new C4ValueArray(32); iSize = 0;
418  // Create marker, search all areas
419  uint32_t iMarker = ::Objects.GetNextMarker();
420  for (; pLst; pLst=Area.NextObjectShapes(pLst, &pSct))
421  for (C4Object *obj : *pLst)
422  if (obj->Status)
423  if (obj->Marker != iMarker)
424  {
425  obj->Marker = iMarker;
426  if (Check(obj))
427  {
428  // Grow the array, if neccessary
429  if (iSize >= pArray->GetSize())
430  pArray->SetSize(iSize * 2);
431  // Add object
432  (*pArray)[iSize++] = C4VObj(obj);
433  }
434  }
435  }
436  else
437  {
438  // Set up array
439  pArray = new C4ValueArray(32); iSize = 0;
440  // Search
441  C4LArea Area(&::Objects.Sectors, *pBounds); C4LSector *pSct;
442  for (C4ObjectList *pLst=Area.FirstObjects(&pSct); pLst; pLst=Area.NextObjects(pLst, &pSct))
443  for (C4Object *obj : *pLst)
444  if (obj->Status)
445  if (Check(obj))
446  {
447  // Grow the array, if neccessary
448  if (iSize >= pArray->GetSize())
449  pArray->SetSize(iSize * 2);
450  // Add object
451  (*pArray)[iSize++] = C4VObj(obj);
452  }
453  }
454  // Shrink array
455  pArray->SetSize(iSize);
456  // Recheck object status (may shrink array again)
457  CheckObjectStatus(pArray);
458  // Apply sorting
459  if (pSort) pSort->SortObjects(pArray);
460  return pArray;
461 }
virtual bool UseShapes()
Definition: C4FindObject.h:95
void SortObjects(C4ValueArray *pArray)
Definition: C4Rect.h:27
virtual C4Rect * GetBounds()
Definition: C4FindObject.h:94
C4Value C4VObj(C4Object *pObj)
Definition: C4Value.cpp:88
C4ValueArray * FindMany(const C4ObjectList &Objs)
uint32_t GetNextMarker()
void SetSize(int32_t inSize)
virtual bool IsImpossible()
Definition: C4FindObject.h:96
C4ObjectList ObjectShapes
Definition: C4Sector.h:49
int32_t GetSize() const
Definition: C4ValueArray.h:36
C4LSectors Sectors
Definition: C4GameObjects.h:42
virtual bool Check(C4Object *pObj)=0
C4GameObjects Objects
Definition: C4Globals.cpp:48
int iSize
Definition: TstC4NetIO.cpp:32

Here is the call graph for this function:

C4Rect* C4FindObjectAtRect::GetBounds ( )
inlineoverrideprotectedvirtual

Reimplemented from C4FindObject.

Definition at line 221 of file C4FindObject.h.

221 { return &bounds; }
virtual bool C4FindObject::IsEnsured ( )
inlineprotectedvirtualinherited

Reimplemented in C4FindObjectCategory, C4FindObjectOr, C4FindObjectAnd, and C4FindObjectNot.

Definition at line 97 of file C4FindObject.h.

Referenced by C4FindObject::Count(), and C4FindObjectNot::IsImpossible().

97 { return false; }

Here is the caller graph for this function:

virtual bool C4FindObject::IsImpossible ( )
inlineprotectedvirtualinherited

Reimplemented in C4FindObjectInArray, C4FindObjectLayer, C4FindObjectProperty, C4FindObjectFunc, C4FindObjectController, C4FindObjectOwner, C4FindObjectProcedure, C4FindObjectOCF, C4FindObjectInRect, C4FindObjectDef, C4FindObjectOr, C4FindObjectAnd, and C4FindObjectNot.

Definition at line 96 of file C4FindObject.h.

Referenced by C4FindObject::Count(), C4FindObject::Find(), C4FindObject::FindMany(), and C4FindObjectNot::IsEnsured().

96 { return false; }

Here is the caller graph for this function:

void C4FindObject::SetSort ( C4SortObject pToSort)
inherited

Definition at line 480 of file C4FindObject.cpp.

Referenced by CreateCriterionsFromPars().

481 {
482  delete pSort;
483  pSort = pToSort;
484 }

Here is the caller graph for this function:

bool C4FindObjectAtRect::UseShapes ( )
inlineoverrideprotectedvirtual

Reimplemented from C4FindObject.

Definition at line 222 of file C4FindObject.h.

222 { return true; }

The documentation for this class was generated from the following files: