v0.2.1 c0399be

graphene-quaternion.go RawHistoryFolder

1// Package graphene was automatically generated by github.com/bnema/puregotk DO NOT EDIT
2package graphene
3
4import (
5	"structs"
6	"unsafe"
7
8	"github.com/ebitengine/purego"
9
10	"github.com/bnema/puregotk/pkg/core"
11	"github.com/bnema/puregotk/v4/gobject/types"
12)
13
14// A quaternion.
15//
16// The contents of the #graphene_quaternion_t structure are private
17// and should never be accessed directly.
18type Quaternion struct {
19	_ structs.HostLayout
20
21	X float32
22
23	Y float32
24
25	Z float32
26
27	W float32
28}
29
30var xQuaternionGLibType func() types.GType
31
32func QuaternionGLibType() types.GType {
33	return xQuaternionGLibType()
34}
35
36func (x *Quaternion) GoPointer() uintptr {
37	return uintptr(unsafe.Pointer(x))
38}
39
40var xQuaternionAlloc func() *Quaternion
41
42// Allocates a new #graphene_quaternion_t.
43//
44// The contents of the returned value are undefined.
45func QuaternionAlloc() *Quaternion {
46
47	cret := xQuaternionAlloc()
48	return cret
49}
50
51var xQuaternionAdd func(uintptr, *Quaternion, *Quaternion)
52
53// Adds two #graphene_quaternion_t @a and @b.
54func (x *Quaternion) Add(BVar *Quaternion, ResVar *Quaternion) {
55
56	xQuaternionAdd(x.GoPointer(), BVar, ResVar)
57
58}
59
60var xQuaternionDot func(uintptr, *Quaternion) float32
61
62// Computes the dot product of two #graphene_quaternion_t.
63func (x *Quaternion) Dot(BVar *Quaternion) float32 {
64
65	cret := xQuaternionDot(x.GoPointer(), BVar)
66	return cret
67}
68
69var xQuaternionEqual func(uintptr, *Quaternion) bool
70
71// Checks whether the given quaternions are equal.
72func (x *Quaternion) Equal(BVar *Quaternion) bool {
73
74	cret := xQuaternionEqual(x.GoPointer(), BVar)
75	return cret
76}
77
78var xQuaternionFree func(uintptr)
79
80// Releases the resources allocated by graphene_quaternion_alloc().
81func (x *Quaternion) Free() {
82
83	xQuaternionFree(x.GoPointer())
84
85}
86
87var xQuaternionInit func(uintptr, float32, float32, float32, float32) *Quaternion
88
89// Initializes a #graphene_quaternion_t using the given four values.
90func (x *Quaternion) Init(XVar float32, YVar float32, ZVar float32, WVar float32) *Quaternion {
91
92	cret := xQuaternionInit(x.GoPointer(), XVar, YVar, ZVar, WVar)
93	return cret
94}
95
96var xQuaternionInitFromAngleVec3 func(uintptr, float32, *Vec3) *Quaternion
97
98// Initializes a #graphene_quaternion_t using an @angle on a
99// specific @axis.
100func (x *Quaternion) InitFromAngleVec3(AngleVar float32, AxisVar *Vec3) *Quaternion {
101
102	cret := xQuaternionInitFromAngleVec3(x.GoPointer(), AngleVar, AxisVar)
103	return cret
104}
105
106var xQuaternionInitFromAngles func(uintptr, float32, float32, float32) *Quaternion
107
108// Initializes a #graphene_quaternion_t using the values of
109// the [Euler angles](http://en.wikipedia.org/wiki/Euler_angles)
110// on each axis.
111//
112// See also: graphene_quaternion_init_from_euler()
113func (x *Quaternion) InitFromAngles(DegXVar float32, DegYVar float32, DegZVar float32) *Quaternion {
114
115	cret := xQuaternionInitFromAngles(x.GoPointer(), DegXVar, DegYVar, DegZVar)
116	return cret
117}
118
119var xQuaternionInitFromEuler func(uintptr, *Euler) *Quaternion
120
121// Initializes a #graphene_quaternion_t using the given #graphene_euler_t.
122func (x *Quaternion) InitFromEuler(EVar *Euler) *Quaternion {
123
124	cret := xQuaternionInitFromEuler(x.GoPointer(), EVar)
125	return cret
126}
127
128var xQuaternionInitFromMatrix func(uintptr, *Matrix) *Quaternion
129
130// Initializes a #graphene_quaternion_t using the rotation components
131// of a transformation matrix.
132func (x *Quaternion) InitFromMatrix(MVar *Matrix) *Quaternion {
133
134	cret := xQuaternionInitFromMatrix(x.GoPointer(), MVar)
135	return cret
136}
137
138var xQuaternionInitFromQuaternion func(uintptr, *Quaternion) *Quaternion
139
140// Initializes a #graphene_quaternion_t with the values from @src.
141func (x *Quaternion) InitFromQuaternion(SrcVar *Quaternion) *Quaternion {
142
143	cret := xQuaternionInitFromQuaternion(x.GoPointer(), SrcVar)
144	return cret
145}
146
147var xQuaternionInitFromRadians func(uintptr, float32, float32, float32) *Quaternion
148
149// Initializes a #graphene_quaternion_t using the values of
150// the [Euler angles](http://en.wikipedia.org/wiki/Euler_angles)
151// on each axis.
152//
153// See also: graphene_quaternion_init_from_euler()
154func (x *Quaternion) InitFromRadians(RadXVar float32, RadYVar float32, RadZVar float32) *Quaternion {
155
156	cret := xQuaternionInitFromRadians(x.GoPointer(), RadXVar, RadYVar, RadZVar)
157	return cret
158}
159
160var xQuaternionInitFromVec4 func(uintptr, *Vec4) *Quaternion
161
162// Initializes a #graphene_quaternion_t with the values from @src.
163func (x *Quaternion) InitFromVec4(SrcVar *Vec4) *Quaternion {
164
165	cret := xQuaternionInitFromVec4(x.GoPointer(), SrcVar)
166	return cret
167}
168
169var xQuaternionInitIdentity func(uintptr) *Quaternion
170
171// Initializes a #graphene_quaternion_t using the identity
172// transformation.
173func (x *Quaternion) InitIdentity() *Quaternion {
174
175	cret := xQuaternionInitIdentity(x.GoPointer())
176	return cret
177}
178
179var xQuaternionInvert func(uintptr, *Quaternion)
180
181// Inverts a #graphene_quaternion_t, and returns the conjugate
182// quaternion of @q.
183func (x *Quaternion) Invert(ResVar *Quaternion) {
184
185	xQuaternionInvert(x.GoPointer(), ResVar)
186
187}
188
189var xQuaternionMultiply func(uintptr, *Quaternion, *Quaternion)
190
191// Multiplies two #graphene_quaternion_t @a and @b.
192func (x *Quaternion) Multiply(BVar *Quaternion, ResVar *Quaternion) {
193
194	xQuaternionMultiply(x.GoPointer(), BVar, ResVar)
195
196}
197
198var xQuaternionNormalize func(uintptr, *Quaternion)
199
200// Normalizes a #graphene_quaternion_t.
201func (x *Quaternion) Normalize(ResVar *Quaternion) {
202
203	xQuaternionNormalize(x.GoPointer(), ResVar)
204
205}
206
207var xQuaternionScale func(uintptr, float32, *Quaternion)
208
209// Scales all the elements of a #graphene_quaternion_t @q using
210// the given scalar factor.
211func (x *Quaternion) Scale(FactorVar float32, ResVar *Quaternion) {
212
213	xQuaternionScale(x.GoPointer(), FactorVar, ResVar)
214
215}
216
217var xQuaternionSlerp func(uintptr, *Quaternion, float32, *Quaternion)
218
219// Interpolates between the two given quaternions using a spherical
220// linear interpolation, or [SLERP](http://en.wikipedia.org/wiki/Slerp),
221// using the given interpolation @factor.
222func (x *Quaternion) Slerp(BVar *Quaternion, FactorVar float32, ResVar *Quaternion) {
223
224	xQuaternionSlerp(x.GoPointer(), BVar, FactorVar, ResVar)
225
226}
227
228var xQuaternionToAngleVec3 func(uintptr, *float32, *Vec3)
229
230// Converts a quaternion into an @angle, @axis pair.
231func (x *Quaternion) ToAngleVec3(AngleVar *float32, AxisVar *Vec3) {
232
233	xQuaternionToAngleVec3(x.GoPointer(), AngleVar, AxisVar)
234
235}
236
237var xQuaternionToAngles func(uintptr, *float32, *float32, *float32)
238
239// Converts a #graphene_quaternion_t to its corresponding rotations
240// on the [Euler angles](http://en.wikipedia.org/wiki/Euler_angles)
241// on each axis.
242func (x *Quaternion) ToAngles(DegXVar *float32, DegYVar *float32, DegZVar *float32) {
243
244	xQuaternionToAngles(x.GoPointer(), DegXVar, DegYVar, DegZVar)
245
246}
247
248var xQuaternionToMatrix func(uintptr, *Matrix)
249
250// Converts a quaternion into a transformation matrix expressing
251// the rotation defined by the #graphene_quaternion_t.
252func (x *Quaternion) ToMatrix(MVar *Matrix) {
253
254	xQuaternionToMatrix(x.GoPointer(), MVar)
255
256}
257
258var xQuaternionToRadians func(uintptr, *float32, *float32, *float32)
259
260// Converts a #graphene_quaternion_t to its corresponding rotations
261// on the [Euler angles](http://en.wikipedia.org/wiki/Euler_angles)
262// on each axis.
263func (x *Quaternion) ToRadians(RadXVar *float32, RadYVar *float32, RadZVar *float32) {
264
265	xQuaternionToRadians(x.GoPointer(), RadXVar, RadYVar, RadZVar)
266
267}
268
269var xQuaternionToVec4 func(uintptr, *Vec4)
270
271// Copies the components of a #graphene_quaternion_t into a
272// #graphene_vec4_t.
273func (x *Quaternion) ToVec4(ResVar *Vec4) {
274
275	xQuaternionToVec4(x.GoPointer(), ResVar)
276
277}
278
279func init() {
280	core.SetPackageName("GRAPHENE", "graphene-gobject-1.0")
281	core.SetSharedLibraries("GRAPHENE", []string{"libgraphene-1.0.so.0"})
282	var libs []uintptr
283	for _, libPath := range core.GetPaths("GRAPHENE") {
284		lib, err := purego.Dlopen(libPath, purego.RTLD_NOW|purego.RTLD_GLOBAL)
285		if err != nil {
286			panic(err)
287		}
288		libs = append(libs, lib)
289	}
290
291	core.PuregoSafeRegister(&xQuaternionGLibType, libs, "graphene_quaternion_get_type")
292
293	core.PuregoSafeRegister(&xQuaternionAlloc, libs, "graphene_quaternion_alloc")
294
295	core.PuregoSafeRegister(&xQuaternionAdd, libs, "graphene_quaternion_add")
296	core.PuregoSafeRegister(&xQuaternionDot, libs, "graphene_quaternion_dot")
297	core.PuregoSafeRegister(&xQuaternionEqual, libs, "graphene_quaternion_equal")
298	core.PuregoSafeRegister(&xQuaternionFree, libs, "graphene_quaternion_free")
299	core.PuregoSafeRegister(&xQuaternionInit, libs, "graphene_quaternion_init")
300	core.PuregoSafeRegister(&xQuaternionInitFromAngleVec3, libs, "graphene_quaternion_init_from_angle_vec3")
301	core.PuregoSafeRegister(&xQuaternionInitFromAngles, libs, "graphene_quaternion_init_from_angles")
302	core.PuregoSafeRegister(&xQuaternionInitFromEuler, libs, "graphene_quaternion_init_from_euler")
303	core.PuregoSafeRegister(&xQuaternionInitFromMatrix, libs, "graphene_quaternion_init_from_matrix")
304	core.PuregoSafeRegister(&xQuaternionInitFromQuaternion, libs, "graphene_quaternion_init_from_quaternion")
305	core.PuregoSafeRegister(&xQuaternionInitFromRadians, libs, "graphene_quaternion_init_from_radians")
306	core.PuregoSafeRegister(&xQuaternionInitFromVec4, libs, "graphene_quaternion_init_from_vec4")
307	core.PuregoSafeRegister(&xQuaternionInitIdentity, libs, "graphene_quaternion_init_identity")
308	core.PuregoSafeRegister(&xQuaternionInvert, libs, "graphene_quaternion_invert")
309	core.PuregoSafeRegister(&xQuaternionMultiply, libs, "graphene_quaternion_multiply")
310	core.PuregoSafeRegister(&xQuaternionNormalize, libs, "graphene_quaternion_normalize")
311	core.PuregoSafeRegister(&xQuaternionScale, libs, "graphene_quaternion_scale")
312	core.PuregoSafeRegister(&xQuaternionSlerp, libs, "graphene_quaternion_slerp")
313	core.PuregoSafeRegister(&xQuaternionToAngleVec3, libs, "graphene_quaternion_to_angle_vec3")
314	core.PuregoSafeRegister(&xQuaternionToAngles, libs, "graphene_quaternion_to_angles")
315	core.PuregoSafeRegister(&xQuaternionToMatrix, libs, "graphene_quaternion_to_matrix")
316	core.PuregoSafeRegister(&xQuaternionToRadians, libs, "graphene_quaternion_to_radians")
317	core.PuregoSafeRegister(&xQuaternionToVec4, libs, "graphene_quaternion_to_vec4")
318
319}

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 1

Tags 102

↑↓ moveenter openesc close