LayerProperties is a MixinInterface providing access to a specific layer's properties.
This interface is returned by some methods in the Interface: LayerManager core interface and the Interface: INodeLayerProperties node interface.
Interface: LayerProperties
Properties:
<LayerProperties>.on : boolean : Read|Write
Get/Set the Enabled state of the layer.
<LayerProperties>.lock : boolean : Read|Write
Get/Set the Locked state of the layer.
<LayerProperties>.current : boolean : Read|Write
Get/Set whether the layer is the Current layer.
NOTE:
Can only be set to true !
<LayerProperties>.wireColor : color by value : Read|Write
Get/Set the Wireframe Color of the layer.
<LayerProperties>.isGIExcluded : boolean : Read|Write
Get/Set the Exclude from Radiosity state of the layer.
<LayerProperties>.name : string : Read
Get the name of the layer. To set the name of the layer, please use the <LayerProperties>. setName() method described further on this page. This is necessary because MAXScript has to
validate the new name - layer names must be unique!
<LayerProperties>.renderable : bool : Read|Write
Get/Set whether the objects on the layer are renderable.
<LayerProperties>.inheritVisibility : bool : Read|Write
Get/Set whether the objects on the layer inherit visibility from their parents.
<LayerProperties>.primaryVisibility : bool : Read|Write
Get/Set whether the objects on the layer are visible to camera
<LayerProperties>.secondaryVisibility : bool : Read|Write
Get/Set whether the objects on the layer are reflections
<LayerProperties>.receiveshadows : bool : Read|Write
Get/Set whether the objects on the layer receive shadows.
<LayerProperties>.castShadows : bool : Read|Write
Get/Set whether the objects on the layer cast shadows.
<LayerProperties>.applyAtmospherics : bool : Read|Write
Get/Set whether the objects on the layer can be occluded by atmospheric effects
<LayerProperties>.renderOccluded : bool : Read|Write
Get/Set whether the objects on the layer will render to RPF layers when occluded.
<LayerProperties>.ishidden : bool : Read|Write
Get/Set whether the objects on the layer are hidden.
<LayerProperties>.isfrozen : bool : Read|Write
Get/Set whether the objects on the layer are frozen.
<LayerProperties>.boxmode : bool : Read|Write
Get/Set whether the objects on the layer will be displayed in box mode.
<LayerProperties>.backfacecull : bool : Read|Write
Get/Set whether the objects on the layer will be displayed with culled backfaces.
<LayerProperties>.alledges : bool : Read|Write
Get/Set whether the objects on the layer will be displayed with all edges visible.
<LayerProperties>.vertexTicks : bool : Read|Write
Get/Set whether the objects on the layer will be displayed with vertices as ticks.
<LayerProperties>.showTrajectory : bool : Read|Write
Get/Set whether the objects on the layer will show trajectories
<LayerProperties>.xray : bool : Read|Write
Get/Set whether the objects on the layer will be displayed as See-Thru
<LayerProperties>.ignoreExtents : bool : Read|Write
Get/Set whether the extents of the objects on the layer will be ignored.
<LayerProperties>.showFrozenInGray : bool : Read|Write
Get/Set whether the objects on the layer will be displayed as gray when frozen.
<LayerProperties>.showVertexColors : bool : Read|Write
Get/Set whether the objects on the layer will be displayed with vertex colors.
<LayerProperties>.vertexColorsShaded : bool : Read|Write
Get/Set whether the objects on the layer will be displayed with shaded vertex colors.
<LayerProperties>.visibility : float : Read|Write
Get/Set whether the objects on the layer will be visible.
<LayerProperties>.imageMotionBlurMultiplier : float : Read|Write
Get/Set the Image Motion Blur Multiplier for objects on the layer
<LayerProperties>.motionBlurOn : bool : Read|Write
Get/Set whether the objects on the layer will render with Motion Blur.
<LayerProperties>.motionblur : enum : Read|Write
motionblur enums: {#none | #object | #image}
Get/Set the type of Motion Blur to be used when rendering objects of the layer
<LayerProperties>.display : enum : Read|Write
display enums: {#viewport | #boundingbox | #wireframe | #shaded}
Get/Set the display mode for all objects on the layer.
<LayerProperties>.INodeGIProperties : Interface : Read
The INodeGIProperties property returns a INodeGIProperties FPS interface giving access to the GI properties of the layer. See Interface: INodeGIProperties
<LayerProperties>.layerAsRefTarg : RefTarget : Read
Returns the layer as a ReferenceTarget.
NOTE:
The layer system operates exactly the opposite of what you would expect - the nodes
reference the layer, rather than the layers referencing the node.
EXAMPLE
|
s=sphere() --Create a sphere, store in variable
--> $Sphere:Sphere01 @ [0.000000,0.000000,0.000000]
sphere() --Create another one
--> $Sphere:Sphere02 @ [0.000000,0.000000,0.000000]
layer = layermanager.getlayer 0 --get default Layer 0
--> <MixinInterface:LayerProperties>
layerRT = layer.layerAsRefTarg --get layer as RefTarget
--> ReferenceTarget:BaseLayer
refs.dependents layerRT --see the dependents
--> #($Sphere:Sphere02 @ [0.0,0.0,0.0], $Sphere:Sphere01 @[0.0,0.0,0.0], ReferenceTarget:Animatable, ReferenceTarget:Animatable, ReferenceTarget:LayerManager, ReferenceTarget:Scene)
refs.dependson s
--> #(Controller:Position_Rotation_Scale, Sphere, ReferenceTarget:BaseLayer)
|
Methods:
Adds the given node to the layer. See bottom of page for an example.
<void>select <boolean>OnOff
If the Boolean value is passed as true, selects all objects on the layer in the scene.
If the argument is passed as false, deselects all objects on the layer.
<boolean>setname <string>name
Sets the name of the layer to the given string. Returns true on success.
NOTE:
Layer names must be unique, which is why a method is used to set the layer name- it
can validate the supplied name before assigning it to the layer as shown in the following
example.
EXAMPLE
|
--First reset 3ds Max to start in an empty scene, then execute:
layer1= layermanager.getlayer 0 --get default Layer 0
--> <MixinInterface:LayerProperties>
layer1.setName "The One" --try to change the name
--> false --you cannot, the default layer is always called "0"
layer2= layermanager.getlayer 1 --try to get Layer 1
--> undefined --there is no such layer yet.
layer2= layermanager.newLayerFromName "Test" --let's create it
--> <MixinInterface:LayerProperties>
layer2.setName "Second Layer" --now we can rename it
--> true
layer3= layermanager.newLayerFromName "Third" -- create another
--> <MixinInterface:LayerProperties>
layer3.setName "Second Layer" --try to give the same name as 2nd
--> false
layer3.setName "ThirdLayer" --it needs a unique name to work
--> true
|
<boolean>nodes <&node array>layerNodes
layerNodes is Out parameter
Returns True on success, and an array of all nodes on the layer in the by-reference
Out parameter.
EXAMPLE
|
layer = layermanager.newLayerFromName "Spheres"
--> <MixinInterface:LayerProperties>
for i =1 to 10 do (s = sphere(); layer.addNode s)
--> OK
layer.nodes &theNodes
--> true
theNodes
--> #($Sphere:Sphere10 @ [0.000000,0.000000,0.000000], $Sphere:Sphere09 @ [0.000000,0.000000,0.000000], $Sphere:Sphere08 @ [0.000000,0.000000,0.000000], $Sphere:Sphere07 @ [0.000000,0.000000,0.000000], $Sphere:Sphere06 @ [0.000000,0.000000,0.000000], $Sphere:Sphere05 @ [0.000000,0.000000,0.000000], $Sphere:Sphere04 @ [0.000000,0.000000,0.000000], $Sphere:Sphere03 @ [0.000000,0.000000,0.000000], $Sphere:Sphere02 @ [0.000000,0.000000,0.000000], $Sphere:Sphere01 @ [0.000000,0.000000,0.000000])
|
NEW in 3ds Max 2015: Returns the LayerProperties MixinInterface of the layer's parent layer, or undefined
if the layer has no parent.
<boolean>setParent <Interface>parent
NEW in 3ds Max 2015: Sets the parent of the layer to the layer represented by the specified LayerProperties
MixinInterface.
<Interface>getChild <index>index
NEW in 3ds Max 2015: Returns the LayerProperties MixinInterface of the indexed child layer, or undefined
if the indexed child layer does not exist.
<integer>getNumChildren()
NEW in 3ds Max 2015: Returns the number of children layers.