VS:GetTexMapBoolN

From Vectorworks Developer
Revision as of 13:46, 29 December 2017 by CBM-c- (talk | contribs) (expand info)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

.VectorScript|VectorScript ..VS:Function Reference|Function Reference ..VS:Function_Reference_Appendix|Appendix

Description

Get map info for specific part of object. partID is texture part, overall is 3. Selector: init:1, flip:2, repH:3, repV:4, long edge:5, worldZ:6, auto align:7

FUNCTION GetTexMapBoolN(
obj :HANDLE;
texPartID :LONGINT;
texLayerID :LONGINT;
selector :INTEGER) : BOOLEAN;
def vs.GetTexMapBoolN(obj, texPartID, texLayerID, selector):
    return BOOLEAN

Parameters

obj HANDLE
texPartID LONGINT
texLayerID LONGINT 0 for base, >0 for decals
selector INTEGER

Remarks

(Orso, 2017 Dec. 29) The number of layers of a part can be fetched using VS:GetNumTexLayers. If a part is in usage it has one layer, so its texLayerID = 1. If the part has additional layers for decals the part's layers will be more than 1.


texPartID flags, check the VS:Function_Reference_Appendix: Texture Part ID:

3: overall for any kind of object
4:
5:
6:
7: left in walls
8: right in walls
9: start cap in walls
10: end cap in walls
11: top in walls
12: bottom in walls
13: holes in walls
14: top in roof faces/slabs
15: bottom in roof faces/slabs
16: sides in roof faces/slabs
17: top in roofs
18: bottom in roofs
19: sides in roofs
20: fascia in roofs
21: attic in roofs
22: soffit in roofs
23:
24: something unknown in roofs
25: something unknown in roofs
  • An extrude will only respond to texPartID 3
  • A roof face or a slab responds to texPartID 3 and 14-16
  • A roof responds to texPartID 3, 17-22, 24-25, whereby I don't know what 24 and 25 are for roofs.
  • A wall can respond to texPartID 3 up to 15, whereby I don't know what 14 and 15 are for walls.

Example

PROCEDURE TEST;
VAR
	obj: HANDLE;
	texPartID : INTEGER;
	
BEGIN
	obj := FSActLayer;
	texPartID := 3; { overall }
	IF (obj <> NIL) THEN
		AlrtDialog(Concat('Is the last layer of the overall part auto-aligned?', Chr(13),
			GetTexMapBoolN(obj, texPartID, GetNumTexLayers(obj, texPartID), 7) { flag 7 = Auto-align }
		))
	ELSE
		AlrtDialog('Please select a textured object'); 
END;
RUN(TEST)

;

Version

Availability: from Vectorworks 2010