001package armyc2.c5isr.renderer.utilities;
002
003/**
004 * @deprecated
005 */
006public interface IMultiPointRenderer {
007
008    /**
009     * Renders all multi-point symbols, creating KML that can be used to draw
010     * it on a Google map.  Multipoint symbols cannot be draw the same 
011     * at different scales. For instance, graphics with arrow heads will need to 
012     * redraw arrowheads when you zoom in on it.  Similarly, graphics like a 
013     * Forward Line of Troops drawn with half circles can improve performance if 
014     * clipped when the parts of the graphic that aren't on the screen.  To help 
015     * readjust graphics and increase performance, this function requires the 
016     * scale and bounding box to help calculate the new locations.
017     * @param id A unique identifier used to identify the symbol by Google map. 
018     * The id will be the folder name that contains the graphic.
019     * @param name a string used to display to the user as the name of the 
020     * graphic being created.
021     * @param description a brief description about the graphic being made and 
022     * what it represents.
023     * @param symbolCode A 15 character symbolID corresponding to one of the
024     * graphics in the MIL-STD-2525C
025     * @param controlPoints The vertices of the graphics that make up the
026     * graphic.  Passed in the format of a string, using decimal degrees 
027     * separating lat and lon by a comma, separating coordinates by a space.  
028     * The following format shall be used "x1,y1[,z1] [xn,yn[,zn]]..."
029     * @param altitudeMode Indicates whether the symbol should interpret 
030     * altitudes as above sea level or above ground level. Options are 
031     * "clampToGround", "relativeToGround" (from surface of earth), "absolute" 
032     * (sea level), "relativeToSeaFloor" (from the bottom of major bodies of 
033     * water).
034     * @param scale A number corresponding to how many meters one meter of our 
035     * map represents. A value "50000" would mean 1:50K which means for every 
036     * meter of our map it represents 50000 meters of real world distance.
037     * @param bbox The viewable area of the map.  Passed in the format of a
038     * string "lowerLeftX,lowerLeftY,upperRightX,upperRightY." Not required
039     * but can speed up rendering in some cases.
040     * example: "-50.4,23.6,-42.2,24.2"
041     * @param modifiers A JSON string representing all the possible symbol 
042     * modifiers represented in the MIL-STD-2525C.  Format of the string will be
043     * {"modifiers": {"attributeName":"value"[,"attributeNamen":"valuen"]...}}
044     * The quotes are literal in the above notation.  Example: 
045     * {"modifiers": {"quantity":"4","speed":"300","azimuth":[100,200]}}
046     * @param format An enumeration: 0 for KML, 1 for JSON.
047     * @param symStd An enumeration: 0 for 2525Bch2, 1 for 2525C.
048     * @return A JSON string representation of the graphic.
049     */
050    public String RenderSymbol(String id, String name, String description, 
051            String symbolCode, String controlPoints, String altitudeMode,
052            double scale, String bbox, String modifiers, int format, int symStd);
053    
054    
055    /**
056     * Renders all multi-point symbols, creating KML or JSON for the user to
057     * parse and render as they like.
058     * This function requires the bounding box to help calculate the new
059     * locations.
060     * @param id A unique identifier used to identify the symbol by Google map.
061     * The id will be the folder name that contains the graphic.
062     * @param name a string used to display to the user as the name of the 
063     * graphic being created.
064     * @param description a brief description about the graphic being made and 
065     * what it represents.
066     * @param symbolCode A 15 character symbolID corresponding to one of the
067     * graphics in the MIL-STD-2525C
068     * @param controlPoints The vertices of the graphics that make up the
069     * graphic.  Passed in the format of a string, using decimal degrees
070     * separating lat and lon by a comma, separating coordinates by a space.
071     * The following format shall be used "x1,y1 [xn,yn]..."
072     * @param pixelWidth pixel dimensions of the viewable map area
073     * @param pixelHeight pixel dimensions of the viewable map area
074     * @param bbox The viewable area of the map.  Passed in the format of a
075     * string "lowerLeftX,lowerLeftY,upperRightX,upperRightY."
076     * example: "-50.4,23.6,-42.2,24.2"
077     * @param modifiers A JSON string representing all the possible symbol
078     * modifiers represented in the MIL-STD-2525C.  Format of the string will be
079     * {"modifiers": {"attributeName":"value"[,"attributeNamen":"valuen"]...}}
080     * The quotes are literal in the above notation.  Example:
081     * {"modifiers": {"quantity":"4","speed":"300","azimuth":[100,200]}}
082     * @param format An enumeration: 0 for KML, 1 for JSON.
083     * @param symStd An enumeration: 0 for 2525Bch2, 1 for 2525C.
084     * @return A JSON (1) or KML (0) string representation of the graphic.
085     */
086    public String RenderSymbol2D(String id, String name, String description, String symbolCode, String controlPoints,
087            int pixelWidth, int pixelHeight, String bbox, String modifiers, int format, int symStd);
088        
089}