Elaztek Developer Hub
Blamite Game Engine - blam!  00453.06.08.26.0624.blamite
The core library for the Blamite Game Engine.
camera.h
Go to the documentation of this file.
1 // camera [camr] - Tag Definition //
3 // -------- //
4 // Part of the Blamite Game Engine //
5 // Copyright (c) Elaztek Studios 2013 - 2023 //
7 
8 
9 #pragma once
10 
11 #include <string>
12 #include <blam/api/v1/types/tags.h>
14 
15 #ifndef BLAM
16 #define BLAM
17 #endif
18 
19 #define tag_camr "camr"
20 
21 
22 
23 #pragma pack(push, 1)
24 struct camera
25 {
29  TAG_ENUM(projection,
30  {
31  perspective,
32  orthographic,
33  });
34 
36 };
37 #pragma pack(pop)
38 
40 {
41 public:
43  {
44  class_name_long = "camera";
45  class_name_short = "camr";
46  version = 0;
47 
48  revisions = {
49 
50  };
51 
52  tag_size = 28;
53 
54  fields =
55  {
56  new RealField("field of view", ""),
57  new RealField("near clip distance", ""),
58  new RealField("far clip distance", ""),
59  new Enum32Field("projection", "",
60  {
61  "Perspective",
62  "Orthographic",
63  }),
64  new Vector3Field("offset", ""),
65 
66  };
67  }
68 };
69 
70 namespace Blam::Content::Tags
71 {
72  BLAM camera* GetCameraTag(std::string tag_path);
73 }
tag_camr
#define tag_camr
Definition: camera.h:19
Blam::Content::Tags
Namespace containing functions related to tag data.
Definition: bitmap.h:181
RealField
Class representing a real tag field.
Definition: real.h:16
vector3
BlamVector3 vector3
Typedef for a vector3 field, used in tag definitions.
Definition: tags.h:445
camera::field_of_view
real field_of_view
Definition: camera.h:26
Vector3Field
Class representing a vector3 tag field.
Definition: vector.h:47
camera
Definition: camera.h:24
Enum32Field
Definition: enum.h:45
Blam::API::v1::Tags::GetTagData
BLAM_EXT_API BlamTagData * GetTagData(std::string tag_path)
Retrieves information for a given tag.
Definition: api.cpp:208
CameraTagClass::CameraTagClass
CameraTagClass()
Definition: camera.h:42
BlamTagClass::fields
std::vector< BlamTagClassField * > fields
A series of tag fields that store the layout of the tag.
Definition: tags.h:209
BlamTagClass::revisions
std::vector< BlamTagClassRevision > revisions
List of all tag class revisions. Does not get written to tags, but is included in plugin files.
Definition: tags.h:208
plugins.h
CameraTagClass
Definition: camera.h:39
BlamTagClass::class_name_short
std::string class_name_short
The short, 4-character name of the tag class.
Definition: tags.h:206
camera::near_clip_distance
real near_clip_distance
Definition: camera.h:27
BlamTagClass::version
int version
The tag class version. Should be incremented any time a tag class is modified whatsoever.
Definition: tags.h:207
camera::offset
vector3 offset
Definition: camera.h:35
BlamTagClass::class_name_long
std::string class_name_long
The longer class name. Typically shown alongside short name for user-friendliness.
Definition: tags.h:205
real
float real
Typedef for a 'real', aka a float.
Definition: tags.h:443
BLAM
#define BLAM
Definition: camera.h:16
camera.h
camera::far_clip_distance
real far_clip_distance
Definition: camera.h:28
BlamTagClass::tag_size
int tag_size
The size of the tag's data. Used on loading/writing tag files.
Definition: tags.h:210
camera::TAG_ENUM
TAG_ENUM(projection, { perspective, orthographic, })
BlamTagData::address
void * address
The address pointing to the start of the tag's data.
Definition: tags.h:132
tags.h
BlamTagData
Class used to contain and access tag data.
Definition: tags.h:125
Blam::Content::Tags::GetCameraTag
BLAM camera * GetCameraTag(std::string tag_path)
Definition: camera.cpp:13
BlamTagClass
Class representing a tag class.
Definition: tags.h:202
api.h
BlamTagData::tag_class
std::string tag_class
The tag's short class name.
Definition: tags.h:146