dynpip files

This commit is contained in:
h4570
2022-07-18 22:42:14 +02:00
parent 95c01afa01
commit a5e1a28164
38 changed files with 481 additions and 182 deletions
@@ -11,42 +11,42 @@
#pragma once
#include <vector>
#include "./path1_clip_vertex.hpp"
#include "./ee_clip_vertex.hpp"
#include "debug/debug.hpp"
#include "renderer/renderer_settings.hpp"
namespace Tyra {
struct Path1EEClipAlgorithmSettings {
struct EEClipAlgorithmSettings {
bool lerpNormals, lerpTexCoords, lerpColors;
};
class Path1EEClipAlgorithm {
class EEClipAlgorithm {
public:
Path1EEClipAlgorithm();
~Path1EEClipAlgorithm();
EEClipAlgorithm();
~EEClipAlgorithm();
void init(const RendererSettings& settings);
void clip(std::vector<Path1ClipVertex>* o_vertices,
const std::vector<Path1ClipVertex>& vertices,
const Path1EEClipAlgorithmSettings& settings);
void clip(std::vector<EEClipVertex>* o_vertices,
const std::vector<EEClipVertex>& vertices,
const EEClipAlgorithmSettings& settings);
static float clipMargin;
private:
float halfWidth, halfHeight, near, far;
std::vector<Path1ClipVertex> tempVertices;
std::vector<EEClipVertex> tempVertices;
float getValueByPlane(const Path1ClipVertex& v, const int& plane);
float getValueByPlane(const EEClipVertex& v, const int& plane);
bool isInside(const int& plane, const float& v, const float& w,
const float& planeLimitValue);
void clipAgainstPlane(const std::vector<Path1ClipVertex>& original,
std::vector<Path1ClipVertex>* clipped, const int& plane,
void clipAgainstPlane(const std::vector<EEClipVertex>& original,
std::vector<EEClipVertex>* clipped, const int& plane,
const float& planeLimitValue,
const Path1EEClipAlgorithmSettings& settings);
const EEClipAlgorithmSettings& settings);
};
} // namespace Tyra
@@ -14,7 +14,7 @@
namespace Tyra {
struct Path1ClipVertex {
struct EEClipVertex {
Vec4 position, normal, st, color;
};
@@ -1,28 +0,0 @@
/*
# ______ ____ ___
# | \/ ____| |___|
# | | | \ | |
#-----------------------------------------------------------------------
# Copyright 2022, tyra - https://github.com/h4570/tyra
# Licenced under Apache License 2.0
# Sandro Sobczyński <sandro.sobczynski@gmail.com>
*/
#pragma once
#include <packet2_utils.h>
#include <string>
#include "../../vu1_program.hpp"
namespace Tyra {
class VU1DrawFinish : public VU1Program {
public:
VU1DrawFinish();
~VU1DrawFinish();
std::string getStringName() const;
void addTag(packet2_t* packet, prim_t* prim) const;
};
} // namespace Tyra