public static Iterator createShape3D(OMGraphic graphic,double baselineHeight){
  Debug.message("3detail","OMGraphicUtil.createShape3D()");
  boolean DEBUG_SHAPE=Debug.debugging("3dshape");
  if (graphic == null) {
    return NULL_ITERATOR;
  }
  if (graphic instanceof OMGraphicList) {
    HashSet set=new HashSet();
    for (    OMGraphic subgraphic : (OMGraphicList)graphic) {
      Debug.message("3detail","OMGraphicUtil.createShape3D():  recursivly adding list...");
      Iterator iterator=createShape3D(subgraphic,baselineHeight);
      while (iterator.hasNext()) {
        set.add(iterator.next());
      }
    }
    return set.iterator();
  }
 else {
    if (DEBUG_SHAPE) {
      Debug.output("OMGraphicUtil.createShape3D():  adding shape...");
    }
    Shape shape=graphic.getShape();
    if (shape != null) {
      if (graphic.shouldRenderFill()) {
        return createShape3D(shape,baselineHeight,graphic.getFillColor(),true);
      }
 else       if (graphic.shouldRenderEdge()) {
        return createShape3D(shape,baselineHeight,graphic.getDisplayColor(),false);
      }
 else       if (DEBUG_SHAPE) {
        Debug.output("OMGraphicUtil.createShape3D(): can't render graphic");
      }
    }
 else     if (DEBUG_SHAPE) {
      Debug.output("OMGraphicUtil.createShape3D(): shape from graphic is null");
    }
  }
  return NULL_ITERATOR;
}

public static Iterator createShape3D ( OMGraphic graphic , double baselineHeight ) { Debug . message ( "3detail" , "OMGraphicUtil.createShape3D()" ) ; boolean DEBUG_SHAPE = Debug . debugging ( "3dshape" ) ; if ( graphic == null ) { return NULL_ITERATOR ; } if ( graphic instanceof OMGraphicList ) { HashSet set = new HashSet ( ) ; for ( OMGraphic subgraphic : ( OMGraphicList ) graphic ) { Debug . message ( "3detail" , "OMGraphicUtil.createShape3D():  recursivly adding list..." ) ; Iterator iterator = createShape3D ( subgraphic , baselineHeight ) ; while ( iterator . hasNext ( ) ) { set . add ( iterator . next ( ) ) ; } } return set . iterator ( ) ; } else { if ( DEBUG_SHAPE ) { Debug . output ( "OMGraphicUtil.createShape3D():  adding shape..." ) ; } Shape shape = graphic . getShape ( ) ; if ( shape != null ) { if ( graphic . shouldRenderFill ( ) ) { return createShape3D ( shape , baselineHeight , graphic . getFillColor ( ) , true ) ; } else if ( graphic . shouldRenderEdge ( ) ) { return createShape3D ( shape , baselineHeight , graphic . getDisplayColor ( ) , false ) ; } else if ( DEBUG_SHAPE ) { Debug . output ( "OMGraphicUtil.createShape3D(): can't render graphic" ) ; } } else if ( DEBUG_SHAPE ) { Debug . output ( "OMGraphicUtil.createShape3D(): shape from graphic is null" ) ; } } return NULL_ITERATOR ; }
method takes an omgraphic , creates one or more shape3d objects out of it , and returns an iterator containing them .
