forked from enlightenment/efl
131 lines
4.1 KiB
Plaintext
131 lines
4.1 KiB
Plaintext
import evas_canvas3d_types;
|
|
|
|
class @beta Evas.Canvas3D.Primitive extends Evas.Canvas3D.Object
|
|
{
|
|
[[Evas 3D canvas primitive class]]
|
|
data: Evas_Canvas3D_Primitive_Data;
|
|
|
|
methods {
|
|
@property form {
|
|
[[The form of the given primitive.
|
|
|
|
Form defines which function will be chosen to set data to mesh
|
|
on call of evas_canvas3d_mesh_primitive_set.
|
|
|
|
Now available next forms of primitives are tabulated primitives (SQUARE and CUBE),
|
|
solids of revolution (CYLINDER, CONE, SPHERE and TORUS) and surfaces (SURFACE and TERRAIN).
|
|
|
|
Default form is EVAS_CANVAS3D_MESH_PRIMITIVE_NONE.]]
|
|
set {
|
|
}
|
|
get {
|
|
}
|
|
values {
|
|
form: Evas.Canvas3D.Mesh_Primitive; [[Form of primitive.]]
|
|
}
|
|
}
|
|
@property mode {
|
|
[[The mode of the given primitive.
|
|
|
|
Mode defines which function will be chosen to set data to mesh
|
|
on call of evas_canvas3d_mesh_primitive_set. It helps to choose
|
|
an alternative algorithm for primitives with a given form,
|
|
such as a cone without a base or sphere textured in alternative way.
|
|
|
|
Mods of primitives are now available
|
|
without base (bases) (supported for cylinder and cone) and
|
|
with alternative UV (supported by sphere).
|
|
|
|
Default form is EVAS_CANVAS3D_PRIMITIVE_MODE_DEFAULT.]]
|
|
set {
|
|
}
|
|
get {
|
|
}
|
|
values {
|
|
mode: Evas.Canvas3D.Primitive_Mode; [[Mode of primitive.]]
|
|
}
|
|
}
|
|
@property ratio {
|
|
[[The ratio of the given primitive.
|
|
|
|
Ratio is used only in torus as the ratio of the
|
|
major radius and minor radius. For this usage
|
|
Available values is from 1.0 to infinity.
|
|
If ratio for torus has a bad value,
|
|
3.0 will be used as the ratio.
|
|
|
|
Default ratio is 3.0.]]
|
|
set {
|
|
}
|
|
get {
|
|
}
|
|
values {
|
|
ratio: Evas.Real; [[Ratio of primitive.]]
|
|
}
|
|
}
|
|
@property precision {
|
|
[[The precision of the given primitive.
|
|
|
|
Precision is used in all non tabulated primitives and defines
|
|
the precision of created primitives.
|
|
Available values range from 3 to infinity.
|
|
If the value is more than 100, you may see a warning
|
|
about possibility of incorrect values or slow processing.
|
|
|
|
Default ratio is 10.]]
|
|
set {
|
|
}
|
|
get {
|
|
}
|
|
values {
|
|
precision: int; [[Precision of primitive.]]
|
|
}
|
|
}
|
|
@property surface {
|
|
[[The surface of the given primitive.
|
|
|
|
Surface is used only in surface primitives and defines
|
|
the equation of filling mesh data on call of
|
|
evas_canvas3d_mesh_primitive_set.
|
|
|
|
This allows you to create customers primitives like
|
|
shell, heart, hyperbolic paraboloid etc. See _shell_func in
|
|
examples/evas/evas-3d-visual-test.c or _perlin_terrain in
|
|
modules/evas/primitives/surfaces/terrain.c for usage examples.
|
|
|
|
Default surface is $null]]
|
|
set {
|
|
}
|
|
values {
|
|
surface: ptr(Evas.Canvas3D.Surface_Func); [[Pointer to customers surface function.]]
|
|
}
|
|
}
|
|
@property tex_scale {
|
|
[[The texture scale of the given primitive.
|
|
|
|
Texture scale uses in all non tabulated primitives
|
|
and defines scale of texture coordinates or primitives.
|
|
|
|
It uses to create periodical textured meshes.
|
|
|
|
Default tex_scale is {1.0, 1.0}]]
|
|
set {
|
|
}
|
|
get {
|
|
}
|
|
values {
|
|
tex_scale_x: Evas.Real; [[Texture scale X coordinate]]
|
|
tex_scale_y: Evas.Real; [[Texture scale Y coordinate]]
|
|
}
|
|
}
|
|
}
|
|
implements {
|
|
Efl.Object.constructor;
|
|
Efl.Object.destructor;
|
|
@empty Evas.Canvas3D.Object.update_notify;
|
|
@empty Evas.Canvas3D.Object.change_notify;
|
|
@empty Evas.Canvas3D.Object.callback_register;
|
|
@empty Evas.Canvas3D.Object.callback_unregister;
|
|
}
|
|
}
|