public class KMLModelPlacemarkImpl extends WWObjectImpl implements KMLRenderable, ColladaResourceResolver
| Modifier and Type | Class and Description |
|---|---|
protected static class |
KMLModelPlacemarkImpl.RequestTask
Attempts to find this model link resource file locally, and if that fails attempts to find it remotely.
|
| Modifier and Type | Field and Description |
|---|---|
protected java.util.concurrent.atomic.AtomicReference<ColladaRoot> |
colladaRoot
Reference to the COLLADA root that contains the parsed COLLADA file.
|
protected ColladaTraversalContext |
colladaTraversalContext
Traversal context for rendering the ColladaRoot.
|
protected KMLModel |
model
Model rendered by this class.
|
protected KMLPlacemark |
parent
Placemark that contains the model.
|
protected java.util.Map<java.lang.String,java.lang.String> |
resourceMap
Map specified by the KML Model's ResourceMap element.
|
protected java.util.concurrent.atomic.AtomicLong |
resourceRetrievalTime
Time, in milliseconds since the Epoch, at which this placemark's model resource was last retrieved.
|
| Constructor and Description |
|---|
KMLModelPlacemarkImpl(KMLTraversalContext tc,
KMLPlacemark placemark,
KMLAbstractGeometry geom)
Create an instance.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
configureColladaRoot(ColladaRoot root)
Apply the model's position, orientation, and scale to a COLLADA root.
|
protected java.util.Map<java.lang.String,java.lang.String> |
createResourceMap(KMLModel model)
Build the resource map from the KML Model's ResourceMap element.
|
protected ColladaRoot |
getColladaRoot()
Indicates the Collada resource referenced by this placemark.
|
protected boolean |
mustRetrieveResource()
Returns whether this placemark must retrieve its model resource.
|
void |
preRender(KMLTraversalContext tc,
DrawContext dc)
Pre-render this element.
|
void |
render(KMLTraversalContext tc,
DrawContext dc)
Render this element.
|
protected void |
requestResource(DrawContext dc)
Thread's off a task to determine whether the resource is local or remote and then retrieves it either from disk
cache or a remote server.
|
java.lang.String |
resolveFilePath(java.lang.String path)
Resolve COLLADA references relative to the COLLADA document.
|
protected void |
retrieveModel(java.lang.String address)
Initiates a retrieval of the model referenced by this placemark.
|
protected void |
setColladaRoot(ColladaRoot root)
Specifies the Collada resource referenced by this placemark, or
null if this placemark has no
resource. |
onMessage, propertyChangeaddPropertyChangeListener, addPropertyChangeListener, clearList, copy, firePropertyChange, firePropertyChange, getBooleanValue, getBooleanValue, getChangeSupport, getDoubleValue, getDoubleValue, getEntries, getIntegerValue, getIntegerValue, getLongValue, getLongValue, getRestorableStateForAVPair, getStringValue, getStringValue, getStringValue, getValue, getValues, hasKey, removeKey, removePropertyChangeListener, removePropertyChangeListener, setValue, setValuesclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitonMessageaddPropertyChangeListener, addPropertyChangeListener, clearList, copy, firePropertyChange, firePropertyChange, getEntries, getStringValue, getValue, getValues, hasKey, removeKey, removePropertyChangeListener, removePropertyChangeListener, setValue, setValuesprotected java.util.concurrent.atomic.AtomicReference<ColladaRoot> colladaRoot
protected ColladaTraversalContext colladaTraversalContext
protected KMLModel model
protected KMLPlacemark parent
protected java.util.Map<java.lang.String,java.lang.String> resourceMap
protected java.util.concurrent.atomic.AtomicLong resourceRetrievalTime
-1, indicating that the resource has not been retrieved.public KMLModelPlacemarkImpl(KMLTraversalContext tc, KMLPlacemark placemark, KMLAbstractGeometry geom)
tc - the current KMLTraversalContext.placemark - the Placemark element containing the Point.geom - the KMLPoint geometry.java.lang.NullPointerException - if the geometry is null.java.lang.IllegalArgumentException - if the parent placemark or the traversal context is null.protected void configureColladaRoot(ColladaRoot root)
root - COLLADA root to configure.protected java.util.Map<java.lang.String,java.lang.String> createResourceMap(KMLModel model)
model - Model from which to create the resource map.protected ColladaRoot getColladaRoot()
null if this placemark has
no resource.null to indicate that this placemark has no resource.setColladaRoot(gov.nasa.worldwind.ogc.collada.ColladaRoot)protected boolean mustRetrieveResource()
false if this
placemark has no KMLLink.true if this placemark must retrieve its model resource, otherwise false.public void preRender(KMLTraversalContext tc, DrawContext dc)
preRender in interface KMLRenderabletc - the current KML traversal context.dc - the current draw context.public void render(KMLTraversalContext tc, DrawContext dc)
render in interface KMLRenderabletc - the current KML traversal context.dc - the current draw context.protected void requestResource(DrawContext dc)
dc - the current draw context.public java.lang.String resolveFilePath(java.lang.String path)
throws java.io.IOException
Resolve a file path..
resolveFilePath in interface ColladaResourceResolverpath - A file path relative to a COLLADA document.java.io.IOException - If an error occurs attempting to locate the resource.protected void retrieveModel(java.lang.String address)
throws java.io.IOException,
javax.xml.stream.XMLStreamException
setColladaRoot(ColladaRoot) to specify this link's new network resource, and sends an
AVKey.RETRIEVAL_STATE_SUCCESSFUL property change event to this
link's property change listeners.
This does nothing if this KMLNetworkLink has no KMLLink.
address - the address of the resource to retrievejava.io.IOException - if an error occursjavax.xml.stream.XMLStreamException - if an error occursprotected void setColladaRoot(ColladaRoot root)
null if this placemark has no
resource.root - the Collada resource referenced by this placemark. May be null.