По сути, я бы хотел, чтобы формы поверхности по умолчанию отображались поверх тактических символов. Вот проблема, воссозданная в примере Worldwind
public class TestApp extends ApplicationTemplate {
public static class AppFrame extends ApplicationTemplate.AppFrame {
public AppFrame() {
// Symbol
RenderableLayer symbolLayer = new RenderableLayer();
TacticalSymbol symbol = new MilStd2525TacticalSymbol("suzp-----------", Position.fromDegrees(0.0, 0.0));
symbol.setAltitudeMode(WorldWind.CLAMP_TO_GROUND);
symbol.setShowLocation(false);
symbolLayer.addRenderable(symbol);
// Shape
RenderableLayer shapeLayer = new RenderableLayer();
SurfaceCircle circle = new SurfaceCircle(Position.fromDegrees(0.0, 0.0), 100e4);
shapeLayer.addRenderable(circle);
getWwd().getModel().getLayers().add(symbolLayer);
getWwd().getModel().getLayers().add(shapeLayer);
}
}
public static void main(String[] args) {
start("World Wind Testing", AppFrame.class);
}
}
Независимо от того, в каком порядке я добавляю слои, тактический символ всегда отображается поверх формы поверхности. Я предполагаю, что это связано с тем, что формы отображаются по-разному:
«слои отображаются в том порядке, в котором они определены в списке слоев. (Однако 3D-фигуры внутри слоев отображаются в порядке от дальнего к ближнему»
У меня есть подозрение, что я могу решить эту проблему, расширив Tactical Symbol и реализовав интерфейс OrderedRenderable и переопределив метод makeOrderedRenderable(), но я не уверен, какие именно изменения Я должен сделать так, чтобы добиться желаемой функциональности, не нарушая другие слои.