16 #ifndef C4FINDOBJECT_H
17 #define C4FINDOBJECT_H
126 C4FindObject **ppConds;
bool fFreeArray;
bool fUseShapes;
127 C4Rect Bounds;
bool fHasBounds;
154 C4Rect Bounds;
bool fHasBounds;
168 : pExclude(pExclude) { }
204 : bounds(x, y, 1, 1) { }
217 : bounds(x, y, wdt, hgt) { }
230 : x(x), y(y), x2(x2), y2(y2), bounds(x, y, 1, 1) { bounds.
Add(
C4Rect(x2, y2, 1,1)); }
232 int32_t x, y, x2, y2;
244 : x(x), y(y), r2(r*r), bounds(x-r, y-r, 2*r+1, 2*r+1) { }
256 C4FindObjectCone(int32_t x, int32_t y, int32_t r, int32_t angle, int32_t width, int32_t prec = 1)
257 : x(x), y(y), r2(r * r), cone_angle(angle % (360 * prec)), cone_width(width), prec_angle(prec), bounds(x - r, y - r, 2 * r + 1, 2 * r + 1) { }
259 int32_t x, y, r2, cone_angle, cone_width, prec_angle;
282 : iCategory(iCategory) { }
294 : szAction(szAction) { }
296 const char *szAction;
305 : pActionTarget(pActionTarget), index(index) { }
317 : procedure(procedure) { }
329 : pContainer(pContainer) { }
360 : controller(controller) { }
386 : Name(Name), have_value(true), Value(Value) { }
389 bool have_value =
false;
446 int32_t *pVals{
nullptr};
bool Check(C4Object *pObj) override
C4FindObjectAction(const char *szAction)
C4FindObjectActionTarget(C4Object *pActionTarget, int index)
bool Check(C4Object *pObj) override
bool Check(C4Object *pObj) override
bool UseShapes() override
~C4FindObjectAnd() override
bool IsEnsured() override
C4Rect * GetBounds() override
bool IsImpossible() override
~C4FindObjectAndStatic() override
C4FindObjectAndStatic(int32_t iCnt, C4FindObject **ppConds)
bool Check(C4Object *pObj) override
C4FindObjectAnyContainer()=default
bool Check(C4Object *pObj) override
C4Rect * GetBounds() override
bool UseShapes() override
C4FindObjectAtPoint(int32_t x, int32_t y)
bool Check(C4Object *pObj) override
bool UseShapes() override
C4Rect * GetBounds() override
C4FindObjectAtRect(int32_t x, int32_t y, int32_t wdt, int32_t hgt)
bool IsEnsured() override
bool Check(C4Object *pObj) override
C4FindObjectCategory(int32_t iCategory)
C4Rect * GetBounds() override
C4FindObjectCone(int32_t x, int32_t y, int32_t r, int32_t angle, int32_t width, int32_t prec=1)
bool Check(C4Object *pObj) override
C4FindObjectContainer(C4Object *pContainer)
bool Check(C4Object *pObj) override
C4FindObjectController(int32_t controller)
bool Check(C4Object *pObj) override
bool IsImpossible() override
bool IsImpossible() override
C4FindObjectDef(C4PropList *def)
bool Check(C4Object *pObj) override
bool Check(C4Object *pObj) override
C4Rect * GetBounds() override
C4FindObjectDistance(int32_t x, int32_t y, int32_t r)
C4FindObjectExclude(C4Object *pExclude)
bool Check(C4Object *pObj) override
bool IsImpossible() override
void SetPar(int i, const C4Value &val)
C4FindObjectFunc(C4String *Name)
bool Check(C4Object *pObj) override
friend class C4FindObjectAnd
C4ValueArray * FindMany(const C4ObjectList &Objs)
C4Object * Find(const C4ObjectList &Objs)
virtual bool IsImpossible()
virtual bool Check(C4Object *pObj)=0
int32_t Count(const C4ObjectList &Objs)
friend class C4FindObjectOr
static C4FindObject * CreateByValue(const C4Value &Data, C4SortObject **ppSortObj=nullptr, const C4Object *context=nullptr, bool *has_layer_check=nullptr)
void SetSort(C4SortObject *pToSort)
virtual C4Rect * GetBounds()
C4FindObjectInArray(C4ValueArray *pArray)
bool IsImpossible() override
bool Check(C4Object *pObj) override
C4Rect * GetBounds() override
bool Check(C4Object *pObj) override
C4FindObjectInRect(const C4Rect &rect)
bool IsImpossible() override
bool Check(C4Object *pObj) override
C4FindObjectLayer(C4Object *pLayer)
bool IsImpossible() override
bool IsImpossible() override
C4FindObjectNot(C4FindObject *pCond)
bool IsEnsured() override
bool Check(C4Object *pObj) override
~C4FindObjectNot() override
C4FindObjectOCF(int32_t ocf)
bool Check(C4Object *pObj) override
bool IsImpossible() override
C4Rect * GetBounds() override
C4FindObjectOnLine(int32_t x, int32_t y, int32_t x2, int32_t y2)
bool UseShapes() override
bool Check(C4Object *pObj) override
bool IsImpossible() override
C4Rect * GetBounds() override
bool UseShapes() override
~C4FindObjectOr() override
bool IsEnsured() override
bool Check(C4Object *pObj) override
bool IsImpossible() override
bool Check(C4Object *pObj) override
C4FindObjectOwner(int32_t iOwner)
bool Check(C4Object *pObj) override
C4FindObjectProcedure(C4String *procedure)
bool IsImpossible() override
C4FindObjectProperty(C4String *Name)
bool IsImpossible() override
bool Check(C4Object *pObj) override
C4FindObjectProperty(C4String *Name, const C4Value &Value)
void Add(const C4Rect &r2)
int32_t Compare(C4Object *pObj1, C4Object *pObj2) override
~C4SortObjectByValue() override
virtual int32_t CompareGetValue(C4Object *pOf)=0
bool PrepareCache(const C4ValueArray *pObjs) override
int32_t CompareCache(int32_t iObj1, int32_t iObj2, C4Object *pObj1, C4Object *pObj2) override
int32_t CompareGetValue(C4Object *pFor) override
C4SortObjectDistance(int iX, int iY)
void SetPar(int i, const C4Value &val)
int32_t CompareGetValue(C4Object *pFor) override
C4SortObjectFunc(C4String *Name)
virtual int32_t Compare(C4Object *pObj1, C4Object *pObj2)=0
virtual bool PrepareCache(const C4ValueArray *pObjs)
virtual int32_t CompareCache(int32_t iObj1, int32_t iObj2, C4Object *pObj1, C4Object *pObj2)
virtual ~C4SortObject()=default
static C4SortObject * CreateByValue(const C4Value &Data, const C4Object *context=nullptr)
void SortObjects(C4ValueArray *pArray)
int32_t CompareGetValue(C4Object *pFor) override
int32_t Compare(C4Object *pObj1, C4Object *pObj2) override
~C4SortObjectMultiple() override
int32_t CompareCache(int32_t iObj1, int32_t iObj2, C4Object *pObj1, C4Object *pObj2) override
C4SortObjectMultiple(int32_t iCnt, C4SortObject **ppSorts, bool fFreeArray=true)
bool PrepareCache(const C4ValueArray *pObjs) override
int32_t CompareGetValue(C4Object *pFor) override
C4SortObjectReverse(C4SortObject *pSort)
~C4SortObjectReverse() override
bool PrepareCache(const C4ValueArray *pObjs) override
int32_t Compare(C4Object *pObj1, C4Object *pObj2) override
int32_t CompareCache(int32_t iObj1, int32_t iObj2, C4Object *pObj1, C4Object *pObj2) override
int32_t CompareGetValue(C4Object *pFor) override
int32_t CompareGetValue(C4Object *pFor) override