Sun, Feb 15, 2015
It’s a generated api from *.proto.
IMHO, the files *.proto are more readable. And always more uptodate.
Protocol Documentation
Table of Contents
Top
animations_kf.proto
AnimationKF
| Field |
Type |
Label |
Description |
| id |
string |
required |
@check identifier (id) should be unique and invariant over a set of datas (eg: use uuid) and over time. |
| name |
string |
optional |
display name |
| duration |
float |
optional |
|
| clips |
Clip |
repeated |
|
BezierParams
Bezier Params for a curve between P0(0, yp0) and P1(1, yp1)
/ y are in the same range that value of KeyPoints
| Field |
Type |
Label |
Description |
| h0_x |
float |
optional |
x of handle of P0 in range [0,1] |
| h0_y |
float |
optional |
|
| h1_x |
float |
optional |
x of handle of P1 in range [0,1] |
| h1_y |
float |
optional |
|
Clip
| Field |
Type |
Label |
Description |
| transforms |
TransformKF |
optional |
|
| colors |
ColorKF |
optional |
|
ColorKF
| Field |
Type |
Label |
Description |
| r |
KeyPoints |
optional |
|
| g |
KeyPoints |
optional |
|
| b |
KeyPoints |
optional |
|
| a |
KeyPoints |
optional |
|
KeyPoints
| Field |
Type |
Label |
Description |
| duration_ratio |
float |
repeated |
|
| value |
float |
repeated |
|
| interpolation |
KeyPoints.InterpolationFct |
repeated |
|
| bezier_params |
BezierParams |
repeated |
|
QuaternionKF
| Field |
Type |
Label |
Description |
| x |
KeyPoints |
optional |
|
| y |
KeyPoints |
optional |
|
| z |
KeyPoints |
optional |
|
| w |
KeyPoints |
optional |
|
| Field |
Type |
Label |
Description |
| translation |
Vec3KF |
optional |
|
| rotation |
QuaternionKF |
optional |
|
| scale |
Vec3KF |
optional |
|
Vec3KF
| Field |
Type |
Label |
Description |
| x |
KeyPoints |
optional |
|
| y |
KeyPoints |
optional |
|
| z |
KeyPoints |
optional |
|
KeyPoints.InterpolationFct
| Name |
Number |
Description |
| constant |
1 |
|
| linear |
2 |
|
| bezier |
3 |
|
Top
custom_params.proto
CustomParam
| Field |
Type |
Label |
Description |
| name |
string |
required |
|
| vbool |
bool |
optional |
|
| vstring |
string |
optional |
|
| vfloat |
float |
optional |
|
| vint |
int32 |
optional |
|
| vvec2 |
Vec2 |
optional |
|
| vvec3 |
Vec3 |
optional |
|
| vvec4 |
Vec4 |
optional |
|
| vquat |
Quaternion |
optional |
|
| vmat4 |
Mat4 |
optional |
|
| vtexture |
Texture |
optional |
|
| vcolor |
Color |
optional |
|
CustomParamList
| Field |
Type |
Label |
Description |
| id |
string |
required |
|
| params |
CustomParam |
repeated |
|
Top
cmds.proto
ChangeAssetFolders
| Field |
Type |
Label |
Description |
| path |
string |
repeated |
a list of local folder path |
| register |
bool |
optional |
true => register path as a root folder for assets, false => unregister/remove path as a root folder |
| unregisterOther |
bool |
optional |
should try to unregister every other root folders for assets ? |
Cmd
| Field |
Type |
Label |
Description |
| setEye |
SetEye |
optional |
use to define eye (the virtual camera used to render viewport) |
| setData |
Data |
optional |
use to set (add/update/merge) data into the scene, model, animation, … |
| deleteData |
DeleteData |
optional |
use to delete data from a scene, model, animation, … |
| changeAssetFolders |
ChangeAssetFolders |
optional |
use to delete data from a scene, model, animation, … |
DeleteData
| Field |
Type |
Label |
Description |
| refs |
string |
repeated |
the list of id of object to delete, including relation where the object is part of. |
| relations |
Relation |
repeated |
the list relation to delete, the object part of the relation can continue to exist. |
| all |
bool |
optional |
set to true to remove all Data |
SetEye
| Field |
Type |
Label |
Description |
| location |
Vec3 |
required |
|
| rotation |
Quaternion |
required |
|
| projection |
Mat4 |
optional |
|
| near |
float |
optional |
|
| far |
float |
optional |
|
| projMode |
SetEye.ProjMode |
optional |
|
SetEye.ProjMode
| Name |
Number |
Description |
| perspective |
1 |
|
| orthographic |
2 |
|
Top
datas.proto
Attenuation
| Field |
Type |
Label |
Description |
| max |
float |
required |
for a distance max is in meter, for an angle attenuation max is in radian. |
| linear |
AttenuationLinear |
optional |
|
| smooth |
AttenuationSmooth |
optional |
|
| inverse |
AttenuationInverse |
optional |
|
| inverse_square |
AttenuationInverseSquare |
optional |
|
AttenuationInverse
| Field |
Type |
Label |
Description |
| scale |
float |
optional |
|
| offset |
float |
optional |
|
| constant |
float |
optional |
|
| linear |
float |
optional |
|
AttenuationInverseSquare
| Field |
Type |
Label |
Description |
| scale |
float |
optional |
|
| offset |
float |
optional |
|
| constant |
float |
optional |
|
| linear |
float |
optional |
|
| quadratic |
float |
optional |
|
AttenuationLinear
| Field |
Type |
Label |
Description |
| begin |
float |
optional |
|
| end |
float |
optional |
|
AttenuationSmooth
| Field |
Type |
Label |
Description |
| begin |
float |
optional |
|
| end |
float |
optional |
|
Bone
| Field |
Type |
Label |
Description |
| id |
string |
required |
@check identifier (id) should be unique and invariant over a set of datas (eg: use uuid) and over time. |
| transform |
Transform |
required |
|
| name |
string |
optional |
display name |
Color
| Field |
Type |
Label |
Description |
| r |
float |
required |
|
| g |
float |
required |
|
| b |
float |
required |
|
| a |
float |
required |
|
Data
| Field |
Type |
Label |
Description |
| version |
uint32 |
optional |
version of the protocol / data format. readonly !! (== the major of the xbuf project version) |
| relations |
Relation |
repeated |
|
| tobjects |
TObject |
repeated |
|
| geometries |
Geometry |
repeated |
|
| materials |
Material |
repeated |
|
| lights |
Light |
repeated |
|
| skeletons |
Skeleton |
repeated |
|
FloatBuffer
| Field |
Type |
Label |
Description |
| values |
float |
repeated |
|
| step |
uint32 |
required |
number of float per group/entry (eg 3 for vec3, 2 for texcoord,…). the length of values should be a multiple of step |
Geometry
| Field |
Type |
Label |
Description |
| id |
string |
required |
@check identifier (id) should be unique and invariant over a set of datas (eg: use uuid) and over time. |
| meshes |
Mesh |
repeated |
|
| name |
string |
optional |
display name |
IndexArray
| Field |
Type |
Label |
Description |
| ints |
UintBuffer |
optional |
|
Light
the direction of the light need by directional and spot is Z (forward like regular Node).
/ To use an other direction add relation to a Node and change the rotation of the Node (idem for translation).
| Field |
Type |
Label |
Description |
| id |
string |
required |
@check identifier (id) should be unique and invariant over a set of datas (eg: use uuid) and over time. |
| kind |
Light.Kind |
optional |
|
| color |
Color |
optional |
|
| intensity |
float |
optional |
|
| cast_shadow |
bool |
optional |
|
| radial_distance |
Attenuation |
optional |
attenuation from the radial distance of light source (for spot and point) |
| spot_angle |
Attenuation |
optional |
attenuation of the angle forme between the forward axis (z) and the direction of the point./ eg: for a linear attenuation linear.begin is the end of inner cone, linear.end is the end of outer cone : linear define the penumbra |
| name |
string |
optional |
display name |
Mat4
| Field |
Type |
Label |
Description |
| c00 |
float |
required |
|
| c10 |
float |
required |
|
| c20 |
float |
required |
|
| c30 |
float |
required |
|
| c01 |
float |
required |
|
| c11 |
float |
required |
|
| c21 |
float |
required |
|
| c31 |
float |
required |
|
| c02 |
float |
required |
|
| c12 |
float |
required |
|
| c22 |
float |
required |
|
| c32 |
float |
required |
|
| c03 |
float |
required |
|
| c13 |
float |
required |
|
| c23 |
float |
required |
|
| c33 |
float |
required |
|
Material
| Field |
Type |
Label |
Description |
| id |
string |
required |
@check identifier (id) should be unique and invariant over a set of datas (eg: use uuid) and over time. |
| family |
string |
optional |
|
| name |
string |
optional |
display name |
| shadeless |
bool |
optional |
|
| color |
Color |
optional |
|
| color_map |
Texture |
optional |
|
| opacity |
float |
optional |
@check range(0.0, 1.0) |
| opacity_map |
Texture |
optional |
|
| normal |
Vec3 |
optional |
|
| normal_map |
Texture |
optional |
|
| roughness |
float |
optional |
@check range(0.0, 1.0) |
| roughness_map |
Texture |
optional |
|
| metalness |
float |
optional |
@check range(0.0, 1.0) |
| metalness_map |
Texture |
optional |
|
| specular |
Color |
optional |
|
| specular_map |
Texture |
optional |
|
| specular_power |
float |
optional |
|
| specular_power_map |
Texture |
optional |
|
| emission |
Color |
optional |
|
| emission_map |
Texture |
optional |
|
Mesh
| Field |
Type |
Label |
Description |
| id |
string |
required |
@check identifier (id) should be unique and invariant over a set of datas (eg: use uuid) and over time. |
| primitive |
Mesh.Primitive |
required |
|
| lod |
uint32 |
optional |
|
| vertexArrays |
VertexArray |
repeated |
@check every vertexArray should have the same number of elements (size / step) |
| indexArrays |
IndexArray |
repeated |
@check max value of every indexArray should be < number of elements of vertexArrays |
| name |
string |
optional |
display name |
Quaternion
Quaternion should be normalized
| Field |
Type |
Label |
Description |
| x |
float |
required |
|
| y |
float |
required |
|
| z |
float |
required |
|
| w |
float |
required |
|
Relation
Define a Relation (edge, link) between two objects with an id
/ rules:
/ * typename of obj with id == ref1 < typename of obj with id == ref2
/ * if typename of both obj is the same the relation if ref1 is the parent, ref2 is the child
| Field |
Type |
Label |
Description |
| ref1 |
string |
required |
reference the id of object 1/@check ref1 != ref2 |
| ref2 |
string |
required |
reference the id of object 1 |
| label |
string |
optional |
mainly for description but often useless |
Skeleton
| Field |
Type |
Label |
Description |
| id |
string |
required |
@check identifier (id) should be unique and invariant over a set of datas (eg: use uuid) and over time. |
| name |
string |
optional |
display name |
| bones |
Bone |
repeated |
|
| bones_graph |
Relation |
repeated |
|
TObject
| Field |
Type |
Label |
Description |
| id |
string |
required |
@check identifier (id) should be unique and invariant over a set of datas (eg: use uuid) and over time. |
| transform |
Transform |
required |
|
| name |
string |
optional |
display name |
Texture
| Field |
Type |
Label |
Description |
| id |
string |
required |
|
| name |
string |
optional |
|
| rpath |
string |
optional |
path of the texture relative to asset root folder (use ‘/’ as folder separator) |
| tex2d |
Texture2DInline |
optional |
|
Texture2DInline
| Field |
Type |
Label |
Description |
| format |
Texture2DInline.Format |
required |
|
| width |
uint32 |
required |
|
| height |
uint32 |
required |
|
| data |
bytes |
required |
|
| Field |
Type |
Label |
Description |
| translation |
Vec3 |
required |
|
| rotation |
Quaternion |
required |
|
| scale |
Vec3 |
required |
|
UintBuffer
| Field |
Type |
Label |
Description |
| values |
uint32 |
repeated |
|
| step |
uint32 |
required |
number of float per group/entry (eg 3 for vec3, 2 for texcoord,…). the length of values should be a multiple of step |
Vec2
| Field |
Type |
Label |
Description |
| x |
float |
required |
|
| y |
float |
required |
|
Vec3
| Field |
Type |
Label |
Description |
| x |
float |
required |
|
| y |
float |
required |
|
| z |
float |
required |
|
Vec4
| Field |
Type |
Label |
Description |
| x |
float |
required |
|
| y |
float |
required |
|
| z |
float |
required |
|
| w |
float |
required |
|
VertexArray
| Field |
Type |
Label |
Description |
| attrib |
VertexArray.Attrib |
required |
|
| morph |
uint32 |
optional |
|
| floats |
FloatBuffer |
optional |
|
Light.Kind
| Name |
Number |
Description |
| ambient |
1 |
|
| directional |
2 |
|
| point |
3 |
|
| spot |
4 |
|
Mesh.Primitive
| Name |
Number |
Description |
| points |
1 |
"points" The mesh is composed of a set of independent points. The number of points is n, and point i is given by vertex i. |
| lines |
2 |
"lines" The mesh is composed of a set of independent lines. The number of lines is n / 2 , and line i is composed of vertices 2i and 2i+1 . |
| line_strip |
3 |
"line_strip" The mesh is composed of one or more line strips. The number of lines is n - 1 , and line i is composed of vertices i and i + 1 . |
| triangles |
4 |
"triangles" The mesh is composed of a set of independent triangles. The number of triangles is n/3 , and triangle i is composed of vertices 3i , 3i + 1 , and 3i + 2. |
| triangle_strip |
5 |
"triangle_strip" The mesh is composed of one or more triangle strips. The number of triangles is n - 2 , and triangle i is composed of vertices i, i + 1 , and i + 2 when i is even or vertices i, i + 2 , and i + 1 when i is odd, in the orders listed. |
Texture2DInline.Format
| Name |
Number |
Description |
| rgb8 |
1 |
|
| rgba8 |
2 |
|
| bgra8 |
3 |
|
VertexArray.Attrib
| Name |
Number |
Description |
| position |
1 |
|
| normal |
2 |
|
| tangent |
3 |
|
| bitangent |
4 |
|
| color |
5 |
|
| texcoord |
6 |
|
| texcoord2 |
7 |
|
| texcoord3 |
8 |
|
| texcoord4 |
9 |
|
| texcoord5 |
10 |
|
| texcoord6 |
11 |
|
| texcoord7 |
12 |
|
| texcoord8 |
13 |
|
| texcoord9 |
14 |
|
Scalar Value Types
| .proto Type |
Notes |
C++ Type |
Java Type |
Python Type |
| double |
|
double |
double |
float |
| float |
|
float |
float |
float |
| int32 |
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. |
int32 |
int |
int |
| int64 |
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. |
int64 |
long |
int/long |
| uint32 |
Uses variable-length encoding. |
uint32 |
int |
int/long |
| uint64 |
Uses variable-length encoding. |
uint64 |
long |
int/long |
| sint32 |
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. |
int32 |
int |
int |
| sint64 |
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. |
int64 |
long |
int/long |
| fixed32 |
Always four bytes. More efficient than uint32 if values are often greater than 2^28. |
uint32 |
int |
int |
| fixed64 |
Always eight bytes. More efficient than uint64 if values are often greater than 2^56. |
uint64 |
long |
int/long |
| sfixed32 |
Always four bytes. |
int32 |
int |
int |
| sfixed64 |
Always eight bytes. |
int64 |
long |
int/long |
| bool |
|
bool |
boolean |
boolean |
| string |
A string must always contain UTF-8 encoded or 7-bit ASCII text. |
string |
String |
str/unicode |
| bytes |
May contain any arbitrary sequence of bytes. |
string |
ByteString |
str |