mirrorApp.changedFrequent = changedFrequent;
    synchronized void initMirrorObject() {	AppearanceRetained mirrorApp = (AppearanceRetained)mirror;	mirrorApp.source = source;	mirrorApp.sgApp = this;	if (material != null) { 	    mirrorApp.material = (MaterialRetained)material.mirror;	} else {	    mirrorApp.material = null;	}	if (texture != null) { 	    mirrorApp.texture = (TextureRetained)texture.mirror;	} else {	    mirrorApp.texture = null;	}	if (texCoordGeneration != null) { 	    mirrorApp.texCoordGeneration = (TexCoordGenerationRetained)texCoordGeneration.mirror;	} else {	    mirrorApp.texCoordGeneration = null;	}	if (textureAttributes != null) { 	    mirrorApp.textureAttributes = (TextureAttributesRetained)textureAttributes.mirror;	} else {	    mirrorApp.textureAttributes = null;	}	// TextureUnitState supercedes the single texture interface	if (texUnitState != null && texUnitState.length > 0) {	    mirrorApp.texUnitState = 		new TextureUnitStateRetained[texUnitState.length];	    for (int i = 0; i < texUnitState.length; i++) {		if (texUnitState[i] != null) {		    mirrorApp.texUnitState[i] = 			(TextureUnitStateRetained)texUnitState[i].mirror;		}	    }	} else if (mirrorApp.texture != null ||			mirrorApp.textureAttributes != null ||			mirrorApp.texCoordGeneration != null) {            mirrorApp.texUnitState = new TextureUnitStateRetained[1];            mirrorApp.texUnitState[0] = new TextureUnitStateRetained();            mirrorApp.texUnitState[0].set(                                mirrorApp.texture,                                mirrorApp.textureAttributes,                                mirrorApp.texCoordGeneration);	}	if (coloringAttributes != null) { 	    mirrorApp.coloringAttributes = (ColoringAttributesRetained)coloringAttributes.mirror;	} else {	    mirrorApp.coloringAttributes = null;	}	if (transparencyAttributes != null) { 	    mirrorApp.transparencyAttributes = (TransparencyAttributesRetained)transparencyAttributes.mirror;	} else {	    mirrorApp.transparencyAttributes = null;	}	if (renderingAttributes != null) { 	    mirrorApp.renderingAttributes = (RenderingAttributesRetained)renderingAttributes.mirror;	} else {	    mirrorApp.renderingAttributes = null;	}	if (polygonAttributes != null) { 	    mirrorApp.polygonAttributes = (PolygonAttributesRetained)polygonAttributes.mirror;	} else {	    mirrorApp.polygonAttributes = null;	}	if (lineAttributes != null) { 	    mirrorApp.lineAttributes = (LineAttributesRetained)lineAttributes.mirror;	} else {	    mirrorApp.lineAttributes = null;	}	if (pointAttributes != null) { 	    mirrorApp.pointAttributes = (PointAttributesRetained)pointAttributes.mirror;	} else {	    mirrorApp.pointAttributes = null;	}    }