992f5360b6
- griglia non più nascosta da oggetti in hiddenline - corretta visualizzazione superfici trasparenti con riferimenti locali al gruppo - con selezione oggetti, con il punto si ritorna indice di sotto-oggetto - aggiunto snap-point di superfici e fatte correzioni in generale.
59 lines
1.9 KiB
C
59 lines
1.9 KiB
C
//----------------------------------------------------------------------------
|
|
// EgalTech 2013-2014
|
|
//----------------------------------------------------------------------------
|
|
// File : EGrUtils.h Data : 24.10.14 Versione : 1.5j6
|
|
// Contenuto : Funzioni di utilità.
|
|
//
|
|
//
|
|
//
|
|
// Modifiche : 24.10.14 DS Creazione modulo.
|
|
//
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#pragma once
|
|
|
|
#include "/EgtDev/Include/EGkFrame3d.h"
|
|
|
|
|
|
//------------------------------ Constants -----------------------------------
|
|
const int OGLMAT_DIM = 16 ; // dimensione matrice di trasformazione per OpenGL
|
|
|
|
|
|
//----------------------------------------------------------------------------
|
|
inline bool
|
|
FrameToOpenGlMatrix( const Frame3d& frFrame, double Matrix[OGLMAT_DIM])
|
|
{
|
|
if ( frFrame.GetType() == Frame3d::ERR)
|
|
return false ;
|
|
|
|
Matrix[0] = frFrame.VersX().x ;
|
|
Matrix[1] = frFrame.VersX().y ;
|
|
Matrix[2] = frFrame.VersX().z ;
|
|
Matrix[3] = 0 ;
|
|
Matrix[4] = frFrame.VersY().x ;
|
|
Matrix[5] = frFrame.VersY().y ;
|
|
Matrix[6] = frFrame.VersY().z ;
|
|
Matrix[7] = 0 ;
|
|
Matrix[8] = frFrame.VersZ().x ;
|
|
Matrix[9] = frFrame.VersZ().y ;
|
|
Matrix[10] = frFrame.VersZ().z ;
|
|
Matrix[11] = 0 ;
|
|
Matrix[12] = frFrame.Orig().x ;
|
|
Matrix[13] = frFrame.Orig().y ;
|
|
Matrix[14] = frFrame.Orig().z ;
|
|
Matrix[15] = 1 ;
|
|
|
|
return true ;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
inline bool
|
|
OpenGlMatrixToFrame( const double Matrix[OGLMAT_DIM], Frame3d& frFrame)
|
|
{
|
|
// imposto solo Origine, VersZ e VersNearX per non avere errori di ortogonalità
|
|
return frFrame.Set( Point3d( Matrix[12], Matrix[13], Matrix[14]),
|
|
Vector3d( Matrix[8], Matrix[9], Matrix[10]),
|
|
Vector3d( Matrix[0], Matrix[1], Matrix[2])) ;
|
|
}
|