WaterSpaceWarp : SpacewarpObject

   

WaterSpaceWarp - superclass: SpacewarpObject; super-superclass:Node - classID: #(1192955369, 72894388) 

The Reactor dynamics system has been retired and REMOVED from 3ds Max 2012.

   

Value > MAXWrapper > Node > SpacewarpObject > WaterSpaceWarp

   

Description:

You can use the WaterSpaceWarp to simulate the behavior of a body of liquid. You can specify a size for the water, and physical properties such as density, wave speed, and viscosity.

   

Constructors:

WaterSpaceWarp ... rctWaterWSMObject ... 

   

Properties:

.sizeX (Size_X) : float 
.sizeY (Size_Y) : float 

Get/Set the dimensions for the water

   

.subdivisionsX (Subdivisions_X) : integer 
.subdivisionsY (Subdivisions_Y) : integer 

Get/Set the subdivisions for the water

   

.useLandscape (Landscape) : boolean 

When set to true , the landscape rigid body will be considered.

   

.landscape: node 

Get/Set the landscape rigid body.

   

.waveSpeed (Wave_Speed) : float 

Get/Set the speed at which wave crests propagate across the surface of the water.

   

.minRipple (Min_Ripple) : float 
.maxRipple(Max_Ripple) : float 

Get/Set the bounds on the size of the waves generated in the water.

   

.density: float 

Get/Set the density of the liquid. This determines which objects will sink into the water, and at what height objects of a lesser density will float. The default density is that of real-world water: 1.0.

   

.viscosity: float 

Get/Set the resistance to flow, in other words how difficult it is for objects to move through the liquid. A large value means that the motion of objects through the water is highly damped.

   

.showText (Show_Text) : boolean 

When set to true (default), a label "Water" will appear beside the space warp in the viewport.

   

.useCurrentState (Use_Current_State) : boolean 
.disabled: boolean 

When set to true , the space warp will not be considered by the simulation.

   

.useDepth(Use_Depth) : boolean 

When set to true , the depth value will be considered by the simulation.

   

.depth(Density) : float 

Get/Set the depth of the water. Buoyancy is only applied to objects that are inside the water's depth.

   

Interfaces:

Interface:rctWaterInterface 

Methods:

<float>getNumKeyframes() 

Returns the number of keyframes.

   

<time by value array>getKeyframeTimes() 

Returns an array of keyframe times.

   

<float by value array>getWaterHeightsAtTime <time>time 

Returns an array of height values at the specified time.

   

<boolean>setWaterHeightsAtTime <time>time <&float array>heights 

heights is In and Out parameter

Sets the height values at the specified time to the values supplied with the by-reference array.

   

<void>clearStoredKeyframes() 

Clears the stored keyframes.

   

<integer>getPointIndex <integer>xIndex <integer>yIndex 

Returns the index of the point at row xIndex and column yIndex.

EXAMPLE

w = $Water01--get an existing WaterSpaceWarp
w.clearStoredKeyframes()--clear any existing keyframes
fort = 0to100by2do--animate from frame 0 to 100 with step 2
(
heights = #()--init. an array to store heights
forx = 0tow.subdivisionsXdo--loop through X subdivisions
(
fory = 0tow.subdivisionsYdo--loop through Y subdivisions
(
--get the index of the vertex at the specified X and Y subdivision:
index = w.getPointIndex x y
--calculate a height value based on sine of time and X position:
newheight = 10 * sin ((10.0*t+x*20.0))
append heights newheight--add height to the array
)--end y loop
)--end x loop 
w.setWaterHeightsAtTime t &heights--assign heights at current time
sliderTime = t--watch the process in viewport
)--end t loop
 
w.getNumKeyframes()--show the number of keyframes
print ( w.getWaterHeightsAtTime 0 )--print the heightsonframe 0 

See Also