Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
ModelInstance.h
Go to the documentation of this file.
1
/*
2
* This file is part of Project SkyFire https://www.projectskyfire.org.
3
* See LICENSE.md file for Copyright information
4
*/
5
6
#ifndef _MODELINSTANCE_H_
7
#define _MODELINSTANCE_H_
8
9
#include <G3D/Matrix3.h>
10
#include <G3D/Vector3.h>
11
#include <G3D/AABox.h>
12
#include <G3D/Ray.h>
13
14
#include "
Define.h
"
15
16
namespace
VMAP
17
{
18
class
WorldModel
;
19
struct
AreaInfo
;
20
struct
LocationInfo
;
21
22
enum
ModelFlags
23
{
24
MOD_M2
= 1,
25
MOD_WORLDSPAWN
= 1<<1,
26
MOD_HAS_BOUND
= 1<<2
27
};
28
29
class
ModelSpawn
30
{
31
public
:
32
//mapID, tileX, tileY, Flags, ID, Pos, Rot, Scale, Bound_lo, Bound_hi, name
33
uint32
flags
;
34
uint16
adtId
;
35
uint32
ID
;
36
G3D::Vector3
iPos
;
37
G3D::Vector3
iRot
;
38
float
iScale
;
39
G3D::AABox
iBound
;
40
std::string
name
;
41
bool
operator==
(
const
ModelSpawn
&other)
const
{
return
ID
== other.
ID
; }
42
//uint32 hashCode() const { return ID; }
43
// temp?
44
const
G3D::AABox&
getBounds
()
const
{
return
iBound
; }
45
46
static
bool
readFromFile
(FILE* rf,
ModelSpawn
&spawn);
47
static
bool
writeToFile
(FILE* rw,
const
ModelSpawn
&spawn);
48
};
49
50
class
ModelInstance
:
public
ModelSpawn
51
{
52
public
:
53
ModelInstance
() :
iInvScale
(0.0f),
iModel
(0) { }
54
ModelInstance
(
const
ModelSpawn
&spawn,
WorldModel
* model);
55
void
setUnloaded
() {
iModel
= 0; }
56
bool
intersectRay
(
const
G3D::Ray& pRay,
float
& pMaxDist,
bool
pStopAtFirstHit)
const
;
57
void
intersectPoint
(
const
G3D::Vector3& p,
AreaInfo
&info)
const
;
58
bool
GetLocationInfo
(
const
G3D::Vector3& p,
LocationInfo
&info)
const
;
59
bool
GetLiquidLevel
(
const
G3D::Vector3& p,
LocationInfo
&info,
float
&liqHeight)
const
;
60
protected
:
61
G3D::Matrix3
iInvRot
;
62
float
iInvScale
;
63
WorldModel
*
iModel
;
64
public
:
65
WorldModel
*
getWorldModel
();
66
};
67
}
// namespace VMAP
68
69
#endif
// _MODELINSTANCE
Define.h
uint32
std::uint32_t uint32
Definition
Define.h:77
uint16
std::uint16_t uint16
Definition
Define.h:78
VMAP::ModelInstance::getWorldModel
WorldModel * getWorldModel()
Definition
VMapExtensions.cpp:45
VMAP::ModelInstance::setUnloaded
void setUnloaded()
Definition
ModelInstance.h:55
VMAP::ModelInstance::GetLocationInfo
bool GetLocationInfo(const G3D::Vector3 &p, LocationInfo &info) const
Definition
ModelInstance.cpp:89
VMAP::ModelInstance::ModelInstance
ModelInstance()
Definition
ModelInstance.h:53
VMAP::ModelInstance::intersectPoint
void intersectPoint(const G3D::Vector3 &p, AreaInfo &info) const
Definition
ModelInstance.cpp:55
VMAP::ModelInstance::iInvRot
G3D::Matrix3 iInvRot
Definition
ModelInstance.h:61
VMAP::ModelInstance::iModel
WorldModel * iModel
Definition
ModelInstance.h:63
VMAP::ModelInstance::GetLiquidLevel
bool GetLiquidLevel(const G3D::Vector3 &p, LocationInfo &info, float &liqHeight) const
Definition
ModelInstance.cpp:125
VMAP::ModelInstance::iInvScale
float iInvScale
Definition
ModelInstance.h:62
VMAP::ModelInstance::intersectRay
bool intersectRay(const G3D::Ray &pRay, float &pMaxDist, bool pStopAtFirstHit) const
Definition
ModelInstance.cpp:22
VMAP::ModelSpawn
Definition
ModelInstance.h:30
VMAP::ModelSpawn::readFromFile
static bool readFromFile(FILE *rf, ModelSpawn &spawn)
Definition
ModelInstance.cpp:141
VMAP::ModelSpawn::adtId
uint16 adtId
Definition
ModelInstance.h:34
VMAP::ModelSpawn::name
std::string name
Definition
ModelInstance.h:40
VMAP::ModelSpawn::iRot
G3D::Vector3 iRot
Definition
ModelInstance.h:37
VMAP::ModelSpawn::iScale
float iScale
Definition
ModelInstance.h:38
VMAP::ModelSpawn::ID
uint32 ID
Definition
ModelInstance.h:35
VMAP::ModelSpawn::operator==
bool operator==(const ModelSpawn &other) const
Definition
ModelInstance.h:41
VMAP::ModelSpawn::iPos
G3D::Vector3 iPos
Definition
ModelInstance.h:36
VMAP::ModelSpawn::flags
uint32 flags
Definition
ModelInstance.h:33
VMAP::ModelSpawn::iBound
G3D::AABox iBound
Definition
ModelInstance.h:39
VMAP::ModelSpawn::writeToFile
static bool writeToFile(FILE *rw, const ModelSpawn &spawn)
Definition
ModelInstance.cpp:187
VMAP::ModelSpawn::getBounds
const G3D::AABox & getBounds() const
Definition
ModelInstance.h:44
VMAP::WorldModel
Definition
WorldModel.h:95
VMAP
Definition
IVMapManager.h:19
VMAP::ModelFlags
ModelFlags
Definition
ModelInstance.h:23
VMAP::MOD_WORLDSPAWN
@ MOD_WORLDSPAWN
Definition
ModelInstance.h:25
VMAP::MOD_HAS_BOUND
@ MOD_HAS_BOUND
Definition
ModelInstance.h:26
VMAP::MOD_M2
@ MOD_M2
Definition
ModelInstance.h:24
VMAP::AreaInfo
Definition
MapTree.h:77
VMAP::LocationInfo
Definition
MapTree.h:20
src
server
collision
Models
ModelInstance.h
Generated on
for Project SkyFire Core by
1.17.0