mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 12:49:18 +02:00
merge, with tmj renderer
This commit is contained in:
34
usefull.h
34
usefull.h
@@ -16,11 +16,11 @@ http://mozilla.org/MPL/2.0/.
|
||||
#define DegToRad(a) ((M_PI / 180.0) * (a)) //(a) w nawiasie, bo może być dodawaniem
|
||||
#define RadToDeg(r) ((180.0 / M_PI) * (r))
|
||||
|
||||
#define asModelsPath std::string("models\\")
|
||||
#define asSceneryPath std::string("scenery\\")
|
||||
#define szSceneryPath "scenery\\"
|
||||
#define szTexturePath "textures\\"
|
||||
#define szSoundPath "sounds\\"
|
||||
#define asModelsPath std::string("models/")
|
||||
#define asSceneryPath std::string("scenery/")
|
||||
#define szSceneryPath "scenery/"
|
||||
#define szTexturePath "textures/"
|
||||
#define szSoundPath "sounds/"
|
||||
#define global_texture_path "textures/"
|
||||
|
||||
#define MAKE_ID4(a,b,c,d) (((std::uint32_t)(d)<<24)|((std::uint32_t)(c)<<16)|((std::uint32_t)(b)<<8)|(std::uint32_t)(a))
|
||||
@@ -72,4 +72,28 @@ interpolate( Type_ const &First, Type_ const &Second, double const Factor ) {
|
||||
return ( First * ( 1.0 - Factor ) ) + ( Second * Factor );
|
||||
}
|
||||
|
||||
// tests whether provided points form a degenerate triangle
|
||||
template <typename VecType_>
|
||||
bool
|
||||
degenerate( VecType_ const &Vertex1, VecType_ const &Vertex2, VecType_ const &Vertex3 ) {
|
||||
|
||||
// degenerate( A, B, C, minarea ) = ( ( B - A ).cross( C - A ) ).lengthSquared() < ( 4.0f * minarea * minarea );
|
||||
return ( glm::length2( glm::cross( Vertex2 - Vertex1, Vertex3 - Vertex1 ) ) == 0.0 );
|
||||
}
|
||||
|
||||
// calculates bounding box for provided set of points
|
||||
template <class Iterator_, class VecType_>
|
||||
void
|
||||
bounding_box( VecType_ &Mincorner, VecType_ &Maxcorner, Iterator_ First, Iterator_ Last ) {
|
||||
|
||||
Mincorner = VecType_( std::numeric_limits<typename VecType_::value_type>::max() );
|
||||
Maxcorner = VecType_( std::numeric_limits<typename VecType_::value_type>::lowest() );
|
||||
|
||||
std::for_each(
|
||||
First, Last,
|
||||
[&]( typename Iterator_::value_type &point ) {
|
||||
Mincorner = glm::min( Mincorner, VecType_{ point } );
|
||||
Maxcorner = glm::max( Maxcorner, VecType_{ point } ); } );
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user