14bc4529ed4151df56d72560d1e5d0d838c0a5a6
[scilab.git] / scilab / modules / xcos / model / Xcos.xcore
1 package org.scilab.modules.xcos
2
3 /* Encoded Scilab values */
4 class Binary
5 {
6         /* RFC 2045 Base64 encoded double[] values (space separated) */
7         String base64
8 }
9
10 /* A point is a position on the diagram */
11 class Point
12 {
13         /* X coordinate */
14         double x
15         /* Y coordinate */
16         double y
17 }
18
19 /* Rectangular coordinates of the object */
20 class Geometry
21 {
22         /* X coordinate */
23         double x
24         /* Y coordinate */
25         double y
26         /* Height of the object */
27         double height
28         /* Width of the object */
29         double width
30 }
31
32 /* The kind of a port */
33 enum PortKind
34 {
35         in, out, ein, eout
36 }
37
38 /* Shared definition for both a Diagram and a SuperBlock (eg. a Block) */
39 abstract class Layer
40 {
41         /* Scilab scripts added at current layer */
42         String[] context
43         /* contained objects */
44         contains BaseObject[] child opposite parent
45 }
46
47 /* Shared definition for an object contained in a Layer */
48 abstract class BaseObject {
49         /* Unique IDentifier : usually on the universally unique identifier (UUID) form */
50         id String uid
51         
52         /* The diagram (to ease in memory representation) */
53         refers Diagram[1..1] parentDiagram
54         /* parent Layer to navigate back */
55         container Layer[1..1] parent opposite child
56 }
57
58 /* A diagram is the top-level object of a model. It contains simulation parameters and the hierarchical data-flow and event-flow graphs. */
59 class Diagram extends Layer
60 {
61         /* title of a diagram */
62         String title
63         /* Latest saved path */
64         String path
65         
66         /* Simulation settings */
67         contains SimulationConfig properties
68         /* Simulation debug level */
69         int debugLevel
70         
71         /* Version of the diagram */
72         String version
73 }
74
75 /* Simulation settings */
76 class SimulationConfig
77 {
78         /* Simulation final time (starting at 0) */
79         double finalTime
80         double absoluteTolerance
81         double relativeTolerance
82         double timeTolerance
83         double deltaT
84         double realtimeScale
85         double solver
86         double deltaH
87 }
88
89 /*  */
90 class Block extends BaseObject, Layer
91 {       
92         contains Geometry geometry
93         String description
94         String label
95         String style
96         
97         String interfaceFunction
98         String[] expression
99         contains Binary exprs
100         
101         int[] nzcross
102         int[] nmode
103         contains Binary equations
104         
105         String functionName
106         int functionAPI
107         boolean dependsOnU
108         boolean dependsOnT
109         char blocktype
110         
111         contains Port[] in
112         contains Port[] out
113         contains Port[] ein
114         contains Port[] eout
115         
116         double[] rpar
117         int[] ipar
118         contains Binary opar
119         
120         double[] state
121         double[] dstate
122         contains Binary odstate
123 }
124
125 class Port
126 {       
127         id String uid
128         
129         int[] datatype
130         double firing
131         
132         refers Block sourceBlock
133         PortKind kind
134         boolean implicit
135         refers Link connectedSignal
136         
137         String style
138         String label
139 }
140
141 class Link extends BaseObject
142 {       
143         refers Port sourcePort
144         refers Port destinationPort
145         
146         contains Geometry geometry
147         contains Point[] controlPoint
148         
149         String style
150         String label
151         double lineWidth
152         double lineHeight
153         int color
154 }
155
156 class Annotation extends BaseObject
157 {
158         contains Geometry geometry
159         String description
160         String font
161         String fontSize
162         String style
163 }
164
165 /****************************************************************************************
166  * An executable representation can be exported only if the diagram has been "compiled" *
167  ****************************************************************************************/
168  
169 /*
170  * 
171  */
172 class CompiledRepresentation
173 {
174         
175 }
176