Shape Water Blockset

The Shape Water blockset and the ShapeWater functions morph ordinary flat water blocks into interesting shapes. The available shapes are Circle, Elbow, and Tube.
These shapes may then be animated by using the <RIPPLE> tag.

You must have Rover
to view this animation.

To use the ShapeWater blocks and functions in your spot follow these 5 steps:
1. Add the ShapeWater blockset. <BLOCKSET HREF="http://www.mikejost.com/3dml/Blocksets/ShapeWater/ShapeWater.bset"/>
2. Import the ShapeWater.3dml functions. <IMPORT HREF="http://www.mikejost.com/3dml/Blocksets/ShapeWater/ShapeWater.3dml"/>
3. Using the CREATE tag define a block using a ShapeWater block and fill in parameters for the RIPPLE tag. The block must be MOVABLE.
4. In the Simkin START function call one of the functions CIRCLE, ELBOW, or TUBE to move the vertices of the block into that shape.
5. Additionally call the TRANSLATE function to move the block to the desired location. The block.rotate_x,y,z( ) functions may be used before calling TRANSLATE to adjust the orientation of the block.

It's a bit involved, but just remember these 5 steps. There are tutorials for each of the ShapeWater functions. Start with the CircleWater tutorial as this is the simplest.


Demo
A demo of the ShapeWater blockset and functions is here: ShapeWater Demo

Tutorials
View the ShapeWater Tutorials On-Line here: Shape Water Tutorial

The ShapeWater Tutorials may be downloaded here: ShapeWaterTutorial_1.0.zip


Blocks in ShapeWater.bset:

Circle15x15 - water surface consists of an array of vertices 15 by 15. Copy of Pattern15x15 from water.bset with extra non-active part "interior".
Single Symbol = "a", Double Symbol = "aa"
Parts: water, interior
Circle31x31 - water surface consists of an array of vertices 31 by 31. Copy of Pattern31x31 from water.bset with extra non-active part "interior".
Single Symbol = "b", Double Symbol = "bb"
Parts: water, interior
Circle43x43 - water surface consists of an array of vertices 43 by 43. Copy of Pattern43x43 from water.bset with extra non-active part "interior".
Single Symbol = "c", Double Symbol = "cc"
Parts: water, interior
Tube15x15 - water surface consists of an array of vertices 15 by 15 with extra polygons to fill the interior of the tube shape.
Single Symbol = "e", Double Symbol = "ee"
Parts: water, interior
Tube31x31 - water surface consists of an array of vertices 31 by 31 with extra polygons to fill the interior of the tube shape.
Single Symbol = "f", Double Symbol = "ff"
Parts: water, interior
Tube43x43 - water surface consists of an array of vertices 43 by 43 with extra polygons to fill the interior of the tube shape.
Single Symbol = "g", Double Symbol = "gg"
Parts: water, interior
Elbow15x15 - water surface consists of an array of vertices 15 by 15 with extra polygons to fill the interior of the elbow shape.
Single Symbol = "h", Double Symbol = "hh"
Parts: water, interior
Elbow31x31 - water surface consists of an array of vertices 31 by 31 with extra polygons to fill the interior of the elbow shape.
Single Symbol = "j", Double Symbol = "jj"
Parts: water, interior
Elbow43x43 - water surface consists of an array of vertices 43 by 43 with extra polygons to fill the interior of the elbow shape.
Single Symbol = "k", Double Symbol = "kk"
Parts: water, interior

Textures in ShapeWater.bset:


water.jpg

waterspray.jpg

bluewater.jpg

bluewaterspray2.jpg

torchfireredbrown.jpg

torchfireyellowred.jpg

Functions in ShapeWater.3dml:

CircleWater( block, Nvertices, Xcenter, Ycenter, Zcenter, Rinner, Router)
Creates a circular disk parallel to the XZ plane with center at (Xcenter, Ycenter, Zcenter) relative to the blocks (0,0,0) coordinates. The inner radius of the disk is Rinner, and the outer radius of the disk is Router.
TranslateBlockRelative( blockReference, Xcenter, Ycenter, Zcenter )
Moves the block relative to the block's (0,0,0) point.
TranslateBlockAbsolute(blockReference, Xcenter, Ycenter, Zcenter )
Moves the (0,0,0) coordinate of the block to the absolute Map point (Xcenter,Ycenter,Zcenter).
TubeWater( blockReference, Nvertices, Xoffset, Yoffset, Zstart, Zend, Rinit, Rfinal )
Creates a tube of water whose center axis is parellel to the Z axis. The center of the initial radius is the block's (0,0,0) coordinate, and may be offset by the parameters Xoffset, Yoffset and Zstart. The tube extends along the positive Z axis. The length of the tube is specified by the difference between the parameters Zend and Zstart.
ElbowWater( blockReference, Nvertices, Xoffset, Ystart, Yend, Zstart, Zend, Rinit, Rfinal )
Creates a tube of water bent through 90 degrees around the X axis. The center axis is parallel to the YZ plane. The center of the initial radius is the block's (0,0,0) coordinate, and may be offset by the parameters Xoffset, Ystart and Zstart. The center of the final radius is specified by the parameters Yend and Zend. The initial and final radii are specifed by Rinit and Rfinal.
ElbowWaterGeneral( blockReference, Nvertices, Xoffset, Ystart, Yend, Zstart, Zend, Rinit, Rfinal, theta )
Same as ElbowWater but instead of the bend angle being fixed at 90 degrees, the bend angle is specified by theta