void render() {
		if (shape == null)
			return;
		frontOnly = viewer.getTestFlag2();
		Mps mcps = (Mps) shape;
		for (int m = mcps.getMpsmodelCount(); --m >= 0;) {
			Mps.Mpsmodel mcpsmodel = mcps.getMpsmodel(m);
			if (mcpsmodel == null)
				continue;
			if ((mcpsmodel.modelVisibilityFlags & myVisibilityFlag) == 0)
				continue;
			for (int c = mcpsmodel.getMpspolymerCount(); --c >= 0;) {
				Mps.MpsShape mpspolymer = mcpsmodel.getMpspolymer(c);
				if (mpspolymer.monomerCount >= 2 && initializePolymer(mpspolymer)) {
					renderMpspolymer(mpspolymer);
					freeTempArrays();
				}
			}
		}
	}