The usg sub-module provides functionality for working client side with unstructured surface grids

Assuming that the EnvisionWeb client component has been imported into the variable cee, members of the usg module may be referenced using the cee.usg prefix, e.g.:

var model = new cee.usg.UnstructGridModel();


The UnstructGridModel implements a client side model for handling surface CAE models. It handles surface elements with any number of nodes. A model has one or more State which links a Geometry to scalar, displacement and transformation results for that geometry in that state.

The example application DemoAppUsg shows an example on how to use the UnstructGridModel to simulate streaming of scalar and displacement results.

Here is a simple example of how to create an usg model containing a single quad element with a per node scalar result in one state:

let model = new cee.usg.UnstructGridModel();

let geometry = new cee.usg.Geometry();
let part = geometry.addPart();

// Create a single quad mesh
const nodeArr = [0,0,0, 1,0,0, 1,1,0, 0,1,0];
const elConnArr = [0,1,2,3];
part.mesh = new cee.usg.Mesh(nodeArr, 4, elConnArr);

// Configure the visual appearance of the part
part.settings.color = new cee.Color3(1,0,0);
part.settings.drawStyle = cee.usg.DrawStyle.SURFACE_MESH;

// Create a state, set the geometry and add the scalar result
let state = model.addState();
state.geometry = geometry;

let scalarArr = [1,2,3,4];
state.setPartFringesAt(0, new cee.usg.PartScalars(cee.usg.ResultMapping.PER_NODE, scalarArr));

// Configure the mapper to use, and
const mapper = new cee.ScalarMapperFilledContoursUniform();
mapper.colorArray = cee.ColorTableFactory.color4TableArray(cee.ColorTable.NORMAL, 15);
model.fringesSettings.scalarMapper = mapper;

// Add a color legend based on the mapper
this.m_view.overlay.addCustomColorLegendForScalarMapper(mapper, "Demo result", 1);

This code sample produces the following image in the 3D Viewer: