-
Notifications
You must be signed in to change notification settings - Fork 1
/
KleinBottle.h
34 lines (31 loc) · 1.36 KB
/
KleinBottle.h
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
#pragma once
#include "4dm.h"
namespace fdm
{
class KleinBottle : public Mesh
{
public:
std::vector<glm::vec4> verts; // 0x8
std::vector<glm::vec3> colors; // 0x20
const void* buffData(int buffIndex) const override
{
return reinterpret_cast<const void* (__thiscall*)(const KleinBottle* self, int buffIndex)>(getFuncAddr((int)Func::KleinBottle::buffData))(this, buffIndex);
}
int attrSize(int buffIndex, int attrIndex) const override
{
return reinterpret_cast<int (__thiscall*)(const KleinBottle* self, int buffIndex, int attrIndex)>(getFuncAddr((int)Func::KleinBottle::attrSize))(this, buffIndex, attrIndex);
}
KleinBottle(int edges, float tubeRaduis, float tubeCenterRadius, const glm::vec3& colorA, const glm::vec3& colorB)
{
reinterpret_cast<void(__thiscall*)(KleinBottle* self, int edges, float tubeRaduis, float tubeCenterRadius, const glm::vec3& colorA, const glm::vec3& colorB)>(getFuncAddr((int)Func::KleinBottle::KleinBottle))(this, edges, tubeRaduis, tubeCenterRadius, colorA, colorB);
}
int buffSize(int buffIndex) const override
{
return reinterpret_cast<int (__thiscall*)(const KleinBottle* self, int buffIndex)>(getFuncAddr((int)Func::KleinBottle::buffSize))(this, buffIndex);
}
~KleinBottle()
{
reinterpret_cast<void(__thiscall*)(KleinBottle* self)>(getFuncAddr((int)Func::KleinBottle::destr_KleinBottle))(this);
}
};
}