VS:FindObjAtPt Create: Difference between revisions
m (add missing roofs) |
(fix typo) |
||
Line 5: | Line 5: | ||
----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ||
<desc> | <desc> | ||
Creates object find for objects at specified point within specified radius. The | Creates object find for objects at specified point within specified radius. The function is capable of iterating</desc> | ||
----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ||
Line 58: | Line 58: | ||
([[User:Orso.b.schmid|Orso]], 2011): Was undocumented, made public by VW 2012 (1700). | ([[User:Orso.b.schmid|Orso]], 2011): Was undocumented, made public by VW 2012 (1700). | ||
([[User:Orso.b.schmid|Orso]], 2008-10-15): Finds objects at the point "Loc" starting from the parent container "hContainer". The routine returns a longint as list of objects (similar to BuildResourceList) which you'll use to manipulate the found objects. | ([[User:Orso.b.schmid|Orso]], 2008-10-15): Finds objects at the point "Loc" starting from the parent container "hContainer". The routine returns a longint as list of objects (similar to [[VS:BuildResourceList]]) which you'll use to manipulate the found objects. The suffix ''create'' stays then for ''create a list''. | ||
The suffix | * [[VS:FindObjAtPt_GetCount]](list) will return the count of found objects | ||
* [[VS:FindObjAtPt_GetObj]](list, i) returns a handle to the object at index i. The index is 0-based. | |||
It seems to ignore most object types. It will work with: lines, polylines, polygons, rectangles, arcs, 2D loci, pios. Notably it will ignore: walls, symbols, round rects, ovals, 3D polys, 3D loci, nurbs, extrudes, dimensions, slabs, roofs.... | |||
It seems to ignore most object types. It will work with: | |||
lines, polylines, polygons, rectangles, arcs, 2D loci, pios | |||
Notably it will ignore: | |||
walls, symbols, round rects, ovals, 3D polys, 3D loci, nurbs, extrudes, dimensions, slabs, roofs.... | |||
<code lang="pas"> | <code lang="pas"> |
Revision as of 14:35, 21 January 2016
.VectorScript|VectorScript ..VS:Function Reference|Function Reference ..VS:Function_Reference_Appendix|Appendix
Description
Creates object find for objects at specified point within specified radius. The function is capable of iterating
FUNCTION FindObjAtPt_Create(
hContainer :HANDLE;
objOptions :INTEGER;
travOptions :INTEGER;
locX :REAL;
locY :REAL;
pickRadius :REAL) : LONGINT;
def vs.FindObjAtPt_Create(hContainer, objOptions, travOptions, locX, locY, pickRadius): return LONGINT
Parameters
hContainer HANDLE objOptions INTEGER travOptions INTEGER locX REAL locY REAL pickRadius REAL
Remarks
(Orso, 2011): Was undocumented, made public by VW 2012 (1700).
(Orso, 2008-10-15): Finds objects at the point "Loc" starting from the parent container "hContainer". The routine returns a longint as list of objects (similar to VS:BuildResourceList) which you'll use to manipulate the found objects. The suffix create stays then for create a list.
- VS:FindObjAtPt_GetCount(list) will return the count of found objects
- VS:FindObjAtPt_GetObj(list, i) returns a handle to the object at index i. The index is 0-based.
It seems to ignore most object types. It will work with: lines, polylines, polygons, rectangles, arcs, 2D loci, pios. Notably it will ignore: walls, symbols, round rects, ovals, 3D polys, 3D loci, nurbs, extrudes, dimensions, slabs, roofs....
PROCEDURE xxxxx; VAR cnt, i : INTEGER; startContainer : HANDLE; list : LONGINT; loc : VECTOR; BEGIN GetPt(loc.x, loc.y); startContainer := NIL; list := FindObjAtPt_Create(startContainer, 1, 0, loc.x, loc.y, 100); cnt := FindObjAtPt_GetCount(list); i := 0; WHILE i < cnt DO BEGIN AlrtDialog(Concat('Index: ', i, ' Obj Type: ', GetTypeN(FindObjAtPt_GetObj(list, i)))); i := i + 1; END; FindObjAtPt_Delete( list ); END; Run(xxxxx);
Version
Availability: from Vectorworks 2014