DgsSVGCreateNode: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(Created page with "{{Client function}} __NOTOC__ This function create a node in svg document . ==Syntax== <syntaxhighlight lang="lua"> boolean dgsSVGCreateNode ( svg svgElement, string nodeType, int width, int height) </syntaxhighlight> ===Required Arguments=== *'''svgElement:''' Desired width, preferably power of two (16, 32, 64 etc.), maximum is 4096 *'''nodeType :''' Node type Types : * rect * circle * line * polygon * polyline * path * ellipse *'''widt...")
 
 
(25 intermediate revisions by 2 users not shown)
Line 4: Line 4:
==Syntax==  
==Syntax==  
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
boolean dgsSVGCreateNode ( svg svgElement, string nodeType, int width, int height)
xmlnode dgsSVGCreateNode ( xmlnode xmlNode, string nodeType, ... )
</syntaxhighlight>  
</syntaxhighlight>  
===Required Arguments===
===Required Arguments===
*'''svgElement:''' Desired width, preferably power of two (16, 32, 64 etc.), maximum is 4096
*'''xmlNode :''' The [[xmlnode]] that you want to create node in.
*'''nodeType :''' Node type
*'''nodeType :''' Arguments after '''nodeType''' are detetmined by the available types as follows:
Types :  
**'''rect''': Rectangle. The arguments are as follows.
    * rect
***<syntaxhighlight lang="lua">[ int x, int y ] , int width, int height </syntaxhighlight>
    * circle
***'''x''': An integer of the 2D X position of the rectangle.
    * line
***'''y''': An integer of the 2D Y position of the rectangle.
    * polygon
***'''width''': An integer of the width of the rectangle.
    * polyline
***'''height''': An integer of the height of the rectangle.
    * path
**'''circle''': Circle. The arguments are as follows.
    * ellipse
***<syntaxhighlight lang="lua">int cx, int cy, float r </syntaxhighlight>
*'''width:''' Desired width, preferably power of two (16, 32, 64 etc.), maximum is 4096
***'''cx''': An integer of the center 2D X position of the circle.
*'''height :''' Desired height, preferably power of two (16, 32, 64 etc.), maximum is 4096
***'''cy''': An integer of the center 2D Y position of the circle.
===Optional Arguments===
***'''r''': A float of the radius of the circle.
{{OptionalArg}}
**'''line''' Line.  The arguments are as follows.
*'''pathOrRawData:''' A string representing the path to your SVG file, or the raw SVG data
***<syntaxhighlight lang="lua">int x1, int y1, int x2, int y2 </syntaxhighlight>
***'''x1''': An integer of the 2D X position of the start position of the line.
***'''y1''': An integer of the 2D Y position of the start position of the line.
***'''x2''': An integer of the 2D X position of the end position of the line.
***'''y2''': An integer of the 2D Y position of the end position of the line.
**'''polygon''' Polygon. The arguments are as follows.
***<syntaxhighlight lang="lua">{ int x1, int y1, int x2, int y2, ... } </syntaxhighlight>
***<syntaxhighlight lang="lua">int x1, int y1, int x2, int y2, ... </syntaxhighlight>
***'''x1''': An integer of the 2D X position of the node1 position of the polygon.
***'''y1''': An integer of the 2D Y position of the node1 position of the polygon.
***'''x2''': An integer of the 2D X position of the node2 position of the polygon.
***'''y2''': An integer of the 2D Y position of the node2 position of the polygon.
***'''...''': And so on.
***<syntaxhighlight lang="lua">string points</syntaxhighlight>
***'''points''': A string includes the points like "'x1 y1 x2 y2 ...".
**'''polyline''' Polyline. The arguments are as follows.
***<syntaxhighlight lang="lua"> { int x1, int y1, int x2, int y2, ... } </syntaxhighlight>
***<syntaxhighlight lang="lua"> int x1, int y1, int x2, int y2, ... </syntaxhighlight>
***'''x1''': An integer of the 2D X position of the node1 position of the polyline.
***'''y1''': An integer of the 2D Y position of the node1 position of the polyline.
***'''x2''': An integer of the 2D X position of the node2 position of the polyline.
***'''y2''': An integer of the 2D Y position of the node2 position of the polyline.
***'''...''': And so on.
***<syntaxhighlight lang="lua">string points</syntaxhighlight>
***'''points''': A string includes the points like "x1 y1 x2 y2 ...".
**'''path''': Path. The arguments are as follows.
***<syntaxhighlight lang="lua">table pathTable </syntaxhighlight>
***'''pathTable''': A table includes path data.
***<syntaxhighlight lang="lua">string pathString </syntaxhighlight>
***'''pathString''': A string includes path data.
**'''ellipse''': Ellipse. The arguments are as follows.
***<syntaxhighlight lang="lua">int cx, int cy, float rx, float ry </syntaxhighlight>
***'''cx''': An integer of the center 2D X position of the ellipse.
***'''cy''': An integer of the center 2D Y position of the ellipse.
***'''rx''': A float of the radius of the ellipse on the x axis.
***'''ry''': A float of the radius of the ellipse on the y axis.
 
===Returns===
===Returns===
* Returns an [[svg]] if created successfully, ''false'' otherwise.
* Returns [[xmlnode]] if created successfully, ''false'' otherwise.


==Example==
==Example==
Line 32: Line 68:
local svg = dgsCreateSVG(500,500) -- Create the SVG .  
local svg = dgsCreateSVG(500,500) -- Create the SVG .  
local svgDoc = dgsSVGGetDocument(svg) -- Get the SVG Document so you can modify it .
local svgDoc = dgsSVGGetDocument(svg) -- Get the SVG Document so you can modify it .
local rect = dgsSVGCreateNode(svgDoc,"rect",50,50) -- Create SVG node with rect shape.  
local rect = dgsSVGCreateNode(svgDoc,"rect",50,50) -- Create SVG node with rect type.  
dgsSVGNodeSetAttributes(rect,{ -- Change the rect shape attributes value .
dgsSVGNodeSetAttributes(rect,{ -- Change the node attributes value .
  ["stroke"] = {255,255,0},
  ["stroke"] = {255,255,0},
["stroke-width"] = "5px",
["stroke-width"] = "5px",
  ["fill"] = "rgb(255,0,0)",
  ["fill"] = "rgb(255,0,0)",
}
})


local theImage = dgsCreateImage(200,200,500,500,svg,false) -- Render the svg using dgsCreateImage
local theImage = dgsCreateImage(200,200,500,500,svg,false) -- Render the SVG by  dgsCreateImage
</syntaxhighlight></section>
</syntaxhighlight></section>



Latest revision as of 17:16, 26 February 2022

This function create a node in svg document .

Syntax

xmlnode dgsSVGCreateNode ( xmlnode xmlNode, string nodeType, ... )

Required Arguments

  • xmlNode : The xmlnode that you want to create node in.
  • nodeType : Arguments after nodeType are detetmined by the available types as follows:
    • rect: Rectangle. The arguments are as follows.
      • [ int x, int y ] , int width, int height 
      • x: An integer of the 2D X position of the rectangle.
      • y: An integer of the 2D Y position of the rectangle.
      • width: An integer of the width of the rectangle.
      • height: An integer of the height of the rectangle.
    • circle: Circle. The arguments are as follows.
      • int cx, int cy, float r 
      • cx: An integer of the center 2D X position of the circle.
      • cy: An integer of the center 2D Y position of the circle.
      • r: A float of the radius of the circle.
    • line Line. The arguments are as follows.
      • int x1, int y1, int x2, int y2 
      • x1: An integer of the 2D X position of the start position of the line.
      • y1: An integer of the 2D Y position of the start position of the line.
      • x2: An integer of the 2D X position of the end position of the line.
      • y2: An integer of the 2D Y position of the end position of the line.
    • polygon Polygon. The arguments are as follows.
      • { int x1, int y1, int x2, int y2, ... } 
      • int x1, int y1, int x2, int y2, ... 
      • x1: An integer of the 2D X position of the node1 position of the polygon.
      • y1: An integer of the 2D Y position of the node1 position of the polygon.
      • x2: An integer of the 2D X position of the node2 position of the polygon.
      • y2: An integer of the 2D Y position of the node2 position of the polygon.
      • ...: And so on.
      • string points
      • points: A string includes the points like "'x1 y1 x2 y2 ...".
    • polyline Polyline. The arguments are as follows.
      •  { int x1, int y1, int x2, int y2, ... } 
      •  int x1, int y1, int x2, int y2, ... 
      • x1: An integer of the 2D X position of the node1 position of the polyline.
      • y1: An integer of the 2D Y position of the node1 position of the polyline.
      • x2: An integer of the 2D X position of the node2 position of the polyline.
      • y2: An integer of the 2D Y position of the node2 position of the polyline.
      • ...: And so on.
      • string points
      • points: A string includes the points like "x1 y1 x2 y2 ...".
    • path: Path. The arguments are as follows.
      • table pathTable 
      • pathTable: A table includes path data.
      • string pathString 
      • pathString: A string includes path data.
    • ellipse: Ellipse. The arguments are as follows.
      • int cx, int cy, float rx, float ry 
      • cx: An integer of the center 2D X position of the ellipse.
      • cy: An integer of the center 2D Y position of the ellipse.
      • rx: A float of the radius of the ellipse on the x axis.
      • ry: A float of the radius of the ellipse on the y axis.

Returns

  • Returns xmlnode if created successfully, false otherwise.

Example

Click to collapse [-]
Client
loadstring(exports.dgs:dgsImportFunction())() -- load dgs functions using loadstring.

local svg = dgsCreateSVG(500,500) -- Create the SVG . 
local svgDoc = dgsSVGGetDocument(svg) -- Get the SVG Document so you can modify it .
local rect = dgsSVGCreateNode(svgDoc,"rect",50,50) -- Create SVG node with rect type. 
dgsSVGNodeSetAttributes(rect,{ -- Change the node attributes value .
 	["stroke"] = {255,255,0},
	["stroke-width"] = "5px",
 	["fill"] = "rgb(255,0,0)",
})

local theImage = dgsCreateImage(200,200,500,500,svg,false) -- Render the SVG by  dgsCreateImage

Requirements

Minimum server version n/a
Minimum client version 1.5.8-9.20979

Note: Using this feature requires the resource to have the above minimum version declared in the meta.xml <min_mta_version> section. e.g. <min_mta_version client="1.5.8-9.20979" />

See Also

Custom Cursor Functions

Multi Language Supports

Animation

3D Element

3D Interface

3D Line

3D Image

3D Text

Browser

Button

Check Box

Combo Box

Custom Renderer

Edit

Detect Area

Drag'N Drop

Grid List

Image

Memo

Menu

Label

Layout

Line

Progress Bar

Radio Button

Scale Pane

Scroll Bar

Scroll Pane

Selector

Style

Switch Button

Tab Panel

Window

Basic Shape Plugins

Circle

Quadrilateral

Rounded Rectangle

Other Plugins

Blur Box

Canvas

Chart

Color Picker

Effect 3D

Gradient

Mask

Media Browser

Nine Slice

Object Preview Supports

Paste Handler

QRCode

Remote Image

Screen Source

SVG

Tooltips