1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
//
// Generated By: dol2asm
// Translation Unit: J2DOrthoGraph
//
#include "JSystem/J2DGraph/J2DOrthoGraph.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Forward References:
//
extern "C" void __ct__13J2DOrthoGraphFv();
extern "C" void __ct__13J2DOrthoGraphFffffff();
extern "C" void setPort__13J2DOrthoGraphFv();
extern "C" void func_802E980C();
extern "C" void setLookat__13J2DOrthoGraphFv();
extern "C" void func_802E987C();
extern "C" void J2DDrawLine__FffffQ28JUtility6TColori();
extern "C" void J2DFillBox__FffffQ28JUtility6TColor();
extern "C" void func_802E9B0C();
extern "C" void J2DDrawFrame__FffffQ28JUtility6TColorUc();
extern "C" void func_802E9BE8();
extern "C" bool getGrafType__13J2DOrthoGraphCFv();
//
// External References:
//
extern "C" void __dt__13J2DOrthoGraphFv();
extern "C" void __ct__14J2DGrafContextFffff();
extern "C" void setPort__14J2DGrafContextFv();
extern "C" void setup2D__14J2DGrafContextFv();
extern "C" void setScissor__14J2DGrafContextFv();
extern "C" void func_802E90E4();
extern "C" void
setColor__14J2DGrafContextFQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColor();
extern "C" void setLineWidth__14J2DGrafContextFUc();
extern "C" void func_802E9260();
extern "C" void func_802E9368();
extern "C" void func_802E9564();
extern "C" void place__14J2DGrafContextFffff();
extern "C" void _savegpr_29();
extern "C" void _restgpr_29();
extern "C" extern void* __vt__14J2DGrafContext[10];
//
// Declarations:
//
/* 802E9670-802E96D0 2E3FB0 0060+00 3/3 1/1 0/0 .text __ct__13J2DOrthoGraphFv */
J2DOrthoGraph::J2DOrthoGraph() : J2DGrafContext(0, 0, 0, 0) {
this->setLookat();
}
/* 802E96D0-802E97B4 2E4010 00E4+00 0/0 7/7 0/0 .text __ct__13J2DOrthoGraphFffffff */
J2DOrthoGraph::J2DOrthoGraph(f32 left, f32 top, f32 right, f32 bottom, f32 param_4, f32 param_5)
: J2DGrafContext(left, top, right, bottom) {
mOrtho = JGeometry::TBox2<f32>(0, 0, right, bottom);
mNear = -param_5;
mFar = -param_4;
this->setLookat();
}
/* 802E97B4-802E980C 2E40F4 0058+00 1/0 6/6 0/0 .text setPort__13J2DOrthoGraphFv */
void J2DOrthoGraph::setPort() {
this->J2DGrafContext::setPort();
C_MTXOrtho(mMtx44, mOrtho.i.y, mOrtho.f.y, mOrtho.i.x, mOrtho.f.x, mNear, mFar);
GXSetProjection(mMtx44, GX_ORTHOGRAPHIC);
}
/* 802E980C-802E9840 2E414C 0034+00 0/0 5/5 0/0 .text
* setOrtho__13J2DOrthoGraphFRCQ29JGeometry8TBox2<f>ff */
void J2DOrthoGraph::setOrtho(JGeometry::TBox2<f32> const& bounds, f32 far, f32 near) {
mOrtho = bounds;
mNear = -near;
mFar = -far;
}
/* 802E9840-802E987C 2E4180 003C+00 1/0 0/0 0/0 .text setLookat__13J2DOrthoGraphFv */
void J2DOrthoGraph::setLookat() {
PSMTXIdentity(mPosMtx);
GXLoadPosMtxImm(mPosMtx, 0);
}
/* 802E987C-802E9998 2E41BC 011C+00 0/0 1/1 0/0 .text
* scissorBounds__13J2DOrthoGraphFPQ29JGeometry8TBox2<f>PCQ29JGeometry8TBox2<f> */
void J2DOrthoGraph::scissorBounds(JGeometry::TBox2<f32>* param_0,
JGeometry::TBox2<f32> const* param_1) {
f32 widthPower = this->getWidthPower();
f32 heightPower = this->getHeightPower();
f32 ix = mBounds.i.x >= 0 ? mBounds.i.x : 0;
f32 iy = mBounds.i.y >= 0 ? mBounds.i.y : 0;
f32 f0 = ix + widthPower * (param_1->i.x - mOrtho.i.x);
f32 f2 = ix + widthPower * (param_1->f.x - mOrtho.i.x);
f32 f1 = iy + heightPower * (param_1->i.y - mOrtho.i.y);
f32 f3 = iy + heightPower * (param_1->f.y - mOrtho.i.y);
param_0->set(f0, f1, f2, f3);
param_0->intersect(mScissorBounds);
}
/* 802E9998-802E9AC4 2E42D8 012C+00 0/0 6/6 0/0 .text J2DDrawLine__FffffQ28JUtility6TColori */
void J2DDrawLine(f32 param_0, f32 param_1, f32 param_2, f32 param_3, JUtility::TColor color,
int line_width) {
J2DOrthoGraph oGrph;
oGrph.setLineWidth(line_width);
oGrph.setColor(color);
oGrph.moveTo(param_0, param_1);
oGrph.lineTo(param_2, param_3);
}
/* 802E9AC4-802E9B0C 2E4404 0048+00 0/0 10/10 0/0 .text J2DFillBox__FffffQ28JUtility6TColor */
void J2DFillBox(f32 param_0, f32 param_1, f32 param_2, f32 param_3, JUtility::TColor color) {
J2DFillBox(JGeometry::TBox2<f32>(param_0, param_1, param_0 + param_2, param_1 + param_3),
color);
}
/* 802E9B0C-802E9B9C 2E444C 0090+00 1/1 0/0 0/0 .text
* J2DFillBox__FRCQ29JGeometry8TBox2<f>Q28JUtility6TColor */
void J2DFillBox(JGeometry::TBox2<f32> const& param_0, JUtility::TColor param_1) {
J2DOrthoGraph oGrph;
oGrph.setColor(param_1);
oGrph.fillBox(param_0);
}
/* 802E9B9C-802E9BE8 2E44DC 004C+00 0/0 5/5 0/0 .text J2DDrawFrame__FffffQ28JUtility6TColorUc */
void J2DDrawFrame(f32 param_0, f32 param_1, f32 param_2, f32 param_3, JUtility::TColor color,
u8 line_width) {
J2DDrawFrame(JGeometry::TBox2<f32>(param_0, param_1, param_0 + param_2, param_1 + param_3),
color, line_width);
}
/* 802E9BE8-802E9C88 2E4528 00A0+00 1/1 0/0 0/0 .text
* J2DDrawFrame__FRCQ29JGeometry8TBox2<f>Q28JUtility6TColorUc */
void J2DDrawFrame(JGeometry::TBox2<f32> const& param_0, JUtility::TColor color, u8 line_width) {
J2DOrthoGraph oGrph;
oGrph.setColor(color);
oGrph.setLineWidth(line_width);
oGrph.drawFrame(param_0);
}
|