BooleanClass Values

The BooleanClass class defines the characteristics of values that can only have one of two states.

Literals

true false on --equivalent to true
off --equivalent to false
"true" as booleanClass
"false" as booleanClass
"on" as booleanClass
"off" as booleanClass

Operators

not <boolean>

true if boolean= false , false if boolean= true

<boolean> and <boolean>

true if both boolean values are true

<boolean> or <boolean>

true if either boolean value is true

Note:

The boolean and and or evaluations are non-strict. This means that only the first boolean might be evaluated to determine the overall result:

This saves execution time and enables useful shorthand notation. For example, if you want to calculate 'sin a' and if the value of variable 'a' is not undefined , you can use the example below:

if a != undefined and sin a > 0 then...

The following script shows the use of various literals and operators of the BooleanClass class.

SCRIPT:

``` -- boolean test bed bool1=true-- set variables to boolean literals bool2=on if bool1 and bool2 do print "booleans are equal"-- compare the booleans -- define an "exclusive or" function -- returns true if only one of the -- inputs is true fn xor b1 b2 = (not (b1 and b2)) and (b1 or b2) xor false false-- evaluate 4 combinations of inputs to xor xor false true xor true false xor true true

```

OUTPUT:

``` true-- result of line 2 true-- result of line 3 "booleans are equal"-- output from line 4 "booleans are equal"-- result of line 4 xor()-- function definition false-- result of line 8 true-- result of line 9 true-- result of line 10

```

Comparing / Coercing to Integers

Available in 3ds Max 2018 and higher:BooleanClass values can be compared to Integer values, where 0 is equivalent to false, and all other values are true.

Example:

``` 0 as BooleanClass --> false 1 as BooleanClass --> true true as Integer --> 1 false as Integer --> 0

```