Arma Reforger Explorer
1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Toggle main menu visibility
Loading...
Searching...
No Matches
SCR_CameraBase.c
Go to the documentation of this file.
1
[
EntityEditorProps
(
category
:
"GameScripted/Camera"
, description:
"Scripted camera"
, color:
"128 000 255 255"
)]
2
class
SCR_CameraBaseClass
:
CameraBaseClass
3
{
4
};
5
9
class
SCR_CameraBase
: CameraBase
10
{
11
[
Attribute
(
desc
:
"Show debug shape in World Editor even when the entity is not selected."
)]
12
protected
bool
m_bShowDebugViewCone
;
13
20
bool
IsInView
(
vector
worldPos,
WorkspaceWidget
workspace = null)
21
{
22
if
(!workspace)
23
workspace =
GetGame
().GetWorkspace();
24
25
return
IsInView
(worldPos, workspace.GetWidth() / (
float
)workspace.GetHeight());
26
}
27
33
bool
IsInView
(
vector
worldPos,
float
aspectRatio)
34
{
35
vector
localPos = CoordToLocal(worldPos);
36
float
angleV =
SCR_Math
.
DeltaAngle
(
Math
.Atan2(localPos[2], localPos[1]) *
Math
.RAD2DEG, 90);
37
float
angleH =
SCR_Math
.
DeltaAngle
(
Math
.Atan2(localPos[2], localPos[0]) *
Math
.RAD2DEG, 90);
38
39
float
fovV =
GetVerticalFOV
() / 2;
40
float
fovH =
Math
.Atan2(
Math
.Tan(fovV *
Math
.DEG2RAD) * aspectRatio, 1) *
Math
.RAD2DEG;
41
42
return
Math
.InverseLerp(-fovV, fovV, angleV) < 1 &&
Math
.InverseLerp(-fovH, fovH, angleH) < 1;
43
}
44
49
private
ref
ScriptInvoker
Event_EOnActivate =
new
ScriptInvoker
;
54
private
ref
ScriptInvoker
Event_EOnDeactivate =
new
ScriptInvoker
;
59
private
ref
ScriptInvoker
Event_CameraActivate =
new
ScriptInvoker
;
64
private
ref
ScriptInvoker
Event_CameraDeactivate =
new
ScriptInvoker
;
65
66
ScriptInvoker
GetOnActivate
()
67
{
68
return
Event_EOnActivate;
69
}
70
ScriptInvoker
GetOnDeactivate
()
71
{
72
return
Event_EOnDeactivate;
73
}
74
ScriptInvoker
GetOnCameraActivate()
75
{
76
return
Event_CameraActivate;
77
}
78
ScriptInvoker
GetOnCameraDeactivate()
79
{
80
return
Event_CameraDeactivate;
81
}
82
83
override
void
EOnActivate(
IEntity
owner)
84
{
85
super.EOnActivate(owner);
86
87
Event_EOnActivate.Invoke();
88
}
89
override
void
EOnDeactivate(
IEntity
owner)
90
{
91
super.EOnDeactivate(owner);
92
93
if
(Event_EOnDeactivate)
//--- Invoker may be null when the entity is being deleted
94
Event_EOnDeactivate.Invoke();
95
}
96
override
void
CameraActivate
()
97
{
98
Event_CameraActivate.Invoke();
99
}
100
override
void
CameraDeactivate
()
101
{
102
Event_CameraDeactivate.Invoke();
103
}
104
105
#ifdef WORKBENCH
106
override
int
_WB_GetAfterWorldUpdateSpecs(IEntitySource src)
107
{
108
return
EEntityFrameUpdateSpecs.CALL_WHEN_ENTITY_VISIBLE;
109
}
110
111
override
void
_WB_AfterWorldUpdate(
float
timeSlice)
112
{
113
WorldEditorAPI api = _WB_GetEditorAPI();
114
if
(!api || (!api.IsEntitySelected(api.EntityToSource(
this
)) && !
m_bShowDebugViewCone
))
115
return
;
116
117
float
length =
GetFarPlane
();
118
float
height = Math.Tan(
GetVerticalFOV
() / 2 * Math.DEG2RAD) * length;
119
float
width = height * (api.GetScreenWidth() / api.GetScreenHeight());
120
121
vector transform[4];
122
GetTransform
(transform);
123
124
vector points[12];
125
126
//--- Top
127
points[0] = transform[3];
128
points[1] = transform[3] + transform[2] * length + transform[1] * height + transform[0] * width;
129
points[2] = transform[3] + transform[2] * length + transform[1] * height + transform[0] * -width;
130
131
//--- Right
132
points[3] = points[0];
133
points[4] = transform[3] + transform[2] * length + transform[1] * -height + transform[0] * width;
134
points[5] = points[1];
135
136
//--- Bottom
137
points[6] = points[0];
138
points[7] = transform[3] + transform[2] * length + transform[1] * -height + transform[0] * -width;
139
points[8] = points[4];
140
141
//--- Left
142
points[9] = points[0];
143
points[10] = points[2];
144
points[11] = points[7];
145
146
Shape.CreateTris(
ARGBF
(0.25, 0.5, 0, 1),
ShapeFlags
.ONCE |
ShapeFlags
.TRANSP |
ShapeFlags
.DOUBLESIDE, points, 4);
147
}
148
#endif
149
};
GetTransform
GetTransformResult JsonApiStruct GetTransform(notnull const BlenderRestAPI connection, string object_name)
Definition
BlenderEndpoints.c:47
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
EntityEditorProps
enum SCR_ECompassType EntityEditorProps(category:"GameScripted/Gadgets", description:"Compass", color:"0 0 255 255")
Prefab data class for compass component.
Definition
SCR_CompassComponent.c:10
GetOnActivate
override ScriptInvoker GetOnActivate()
Definition
SCR_EditorManagerEntity.c:627
GetOnDeactivate
override ScriptInvoker GetOnDeactivate()
Definition
SCR_EditorManagerEntity.c:639
desc
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Definition
SCR_RespawnBriefingComponent.c:17
category
params category
Definition
SCR_VehicleDamageManagerComponent.c:302
IEntity
enum EVehicleType IEntity
CameraBaseClass
Definition
CameraBase.c:13
Math
Definition
Math.c:13
SCR_CameraBaseClass
Definition
SCR_CameraBase.c:3
SCR_CameraBase
Definition
SCR_CameraBase.c:10
SCR_CameraBase::IsInView
bool IsInView(vector worldPos, float aspectRatio)
Definition
SCR_CameraBase.c:33
SCR_CameraBase::m_bShowDebugViewCone
bool m_bShowDebugViewCone
Definition
SCR_CameraBase.c:12
SCR_CameraBase::IsInView
bool IsInView(vector worldPos, WorkspaceWidget workspace=null)
Definition
SCR_CameraBase.c:20
SCR_Math
Definition
SCR_Math.c:2
SCR_Math::DeltaAngle
static float DeltaAngle(float a, float b)
Definition
SCR_Math.c:142
WorkspaceWidget
Definition
WorkspaceWidget.c:16
vector
Definition
vector.c:13
CameraDeactivate
void CameraDeactivate()
Called the moment this camera is deactivated by CameraManager.
GetFarPlane
proto external float GetFarPlane()
GetVerticalFOV
proto external float GetVerticalFOV()
CameraActivate
void CameraActivate()
Called the moment this camera is activated by CameraManager.
ShapeFlags
ShapeFlags
Definition
ShapeFlags.c:13
Attribute
SCR_FieldOfViewSettings Attribute
Definition
SendGoalMessage.c:170
ARGBF
proto int ARGBF(float fa, float fr, float fg, float fb)
Converts <0.0, 1.0> ARGB into color.
ScriptInvoker
ScriptInvokerBase< func > ScriptInvoker
Definition
tools.c:134
scripts
Game
Camera
SCR_CameraBase.c
Generated by
1.17.0