Removed all dependencies on <simgear/math/mat3.h> and friends. These are
old routines from SRGP. Steve's plib/sg.h does a nice job of completely replacing this (and since plib is already around) and is a nice clean design so it just makes sense.
This commit is contained in:
parent
b23d8f9938
commit
cc26bb7fe7
26 changed files with 122 additions and 71 deletions
src
Airports
Cockpit
Makefile.amcockpit.cxxhud.cxxhud.hxxhud_card.cxxhud_dnst.cxxhud_guag.cxxhud_inst.cxxhud_labl.cxxhud_ladr.cxxhud_lat.cxxhud_lon.cxxhud_opts.hxxhud_scal.cxxhud_tbi.cxx
Main
NetworkOLK
Objects
Scenery
Time
|
@ -36,17 +36,16 @@
|
||||||
# include <strings.h>
|
# include <strings.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <plib/sg.h>
|
||||||
|
|
||||||
#include <simgear/debug/logstream.hxx>
|
#include <simgear/debug/logstream.hxx>
|
||||||
#include <simgear/math/fg_geodesy.hxx>
|
#include <simgear/math/fg_geodesy.hxx>
|
||||||
#include <simgear/math/mat3.h>
|
|
||||||
#include <simgear/math/point3d.hxx>
|
#include <simgear/math/point3d.hxx>
|
||||||
#include <simgear/math/polar3d.hxx>
|
#include <simgear/math/polar3d.hxx>
|
||||||
#include <simgear/misc/fgstream.hxx>
|
#include <simgear/misc/fgstream.hxx>
|
||||||
|
|
||||||
#include <Objects/materialmgr.hxx>
|
#include <Objects/materialmgr.hxx>
|
||||||
|
|
||||||
// #include <gpc/gpc.h>
|
|
||||||
|
|
||||||
#include "genapt.hxx"
|
#include "genapt.hxx"
|
||||||
|
|
||||||
FG_USING_STD(string);
|
FG_USING_STD(string);
|
||||||
|
@ -90,8 +89,8 @@ gen_base( const Point3D& average, const container& perimeter, FGTileEntry *t)
|
||||||
{
|
{
|
||||||
GLint display_list;
|
GLint display_list;
|
||||||
Point3D cart, cart_trans, tex;
|
Point3D cart, cart_trans, tex;
|
||||||
MAT3vec normal;
|
sgVec3 normal;
|
||||||
double dist, max_dist, temp;
|
double dist, max_dist;
|
||||||
int center_num, i;
|
int center_num, i;
|
||||||
|
|
||||||
fgFRAGMENT fragment;
|
fgFRAGMENT fragment;
|
||||||
|
@ -119,10 +118,8 @@ gen_base( const Point3D& average, const container& perimeter, FGTileEntry *t)
|
||||||
<< average.x() << " " << average.y() << " " << average.z() );
|
<< average.x() << " " << average.y() << " " << average.z() );
|
||||||
fragment.center = average;
|
fragment.center = average;
|
||||||
|
|
||||||
normal[0] = average.x();
|
sgSetVec3( normal, average.x(), average.y(), average.z() );
|
||||||
normal[1] = average.y();
|
sgNormalizeVec3( normal );
|
||||||
normal[2] = average.z();
|
|
||||||
MAT3_NORMALIZE_VEC(normal, temp);
|
|
||||||
|
|
||||||
display_list = xglGenLists(1);
|
display_list = xglGenLists(1);
|
||||||
xglNewList(display_list, GL_COMPILE);
|
xglNewList(display_list, GL_COMPILE);
|
||||||
|
@ -138,7 +135,7 @@ gen_base( const Point3D& average, const container& perimeter, FGTileEntry *t)
|
||||||
|
|
||||||
tex = calc_tex_coords( t->nodes[t->ncount-1], t->center );
|
tex = calc_tex_coords( t->nodes[t->ncount-1], t->center );
|
||||||
xglTexCoord2f(tex.x(), tex.y());
|
xglTexCoord2f(tex.x(), tex.y());
|
||||||
xglNormal3dv(normal);
|
xglNormal3fv(normal);
|
||||||
xglVertex3d(t->nodes[t->ncount-1][0],
|
xglVertex3d(t->nodes[t->ncount-1][0],
|
||||||
t->nodes[t->ncount-1][1],
|
t->nodes[t->ncount-1][1],
|
||||||
t->nodes[t->ncount-1][2]);
|
t->nodes[t->ncount-1][2]);
|
||||||
|
|
|
@ -2,11 +2,11 @@ noinst_LIBRARIES = libCockpit.a
|
||||||
|
|
||||||
libCockpit_a_SOURCES = \
|
libCockpit_a_SOURCES = \
|
||||||
cockpit.cxx cockpit.hxx \
|
cockpit.cxx cockpit.hxx \
|
||||||
hud.cxx hud.hxx \
|
hud.cxx hud.hxx hud_opts.hxx \
|
||||||
hud_card.cxx hud_dnst.cxx hud_guag.cxx hud_inst.cxx \
|
hud_card.cxx hud_dnst.cxx hud_guag.cxx hud_inst.cxx \
|
||||||
hud_labl.cxx hud_ladr.cxx \
|
hud_labl.cxx hud_ladr.cxx \
|
||||||
hud_lat.cxx hud_lon.cxx \
|
hud_lat.cxx hud_lon.cxx \
|
||||||
hud_scal.cxx hud_tbi.cxx \
|
hud_scal.cxx hud_tbi.cxx \
|
||||||
panel.cxx panel.hxx
|
panel.cxx panel.hxx
|
||||||
|
|
||||||
INCLUDES += -I$(top_builddir) -I$(top_builddir)/src
|
INCLUDES += -I$(top_builddir) -I$(top_builddir)/src
|
||||||
|
|
|
@ -39,7 +39,6 @@
|
||||||
#include <simgear/constants.h>
|
#include <simgear/constants.h>
|
||||||
#include <simgear/debug/logstream.hxx>
|
#include <simgear/debug/logstream.hxx>
|
||||||
#include <simgear/math/fg_random.h>
|
#include <simgear/math/fg_random.h>
|
||||||
#include <simgear/math/mat3.h>
|
|
||||||
#include <simgear/math/polar3d.hxx>
|
#include <simgear/math/polar3d.hxx>
|
||||||
|
|
||||||
#include <Aircraft/aircraft.hxx>
|
#include <Aircraft/aircraft.hxx>
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
#include <simgear/constants.h>
|
#include <simgear/constants.h>
|
||||||
#include <simgear/debug/logstream.hxx>
|
#include <simgear/debug/logstream.hxx>
|
||||||
#include <simgear/math/fg_random.h>
|
#include <simgear/math/fg_random.h>
|
||||||
#include <simgear/math/mat3.h>
|
|
||||||
#include <simgear/math/polar3d.hxx>
|
#include <simgear/math/polar3d.hxx>
|
||||||
|
|
||||||
#include <Aircraft/aircraft.hxx>
|
#include <Aircraft/aircraft.hxx>
|
||||||
|
|
|
@ -48,7 +48,6 @@
|
||||||
#include <deque> // STL double ended queue
|
#include <deque> // STL double ended queue
|
||||||
|
|
||||||
#include <simgear/constants.h>
|
#include <simgear/constants.h>
|
||||||
#include <simgear/math/mat3.h>
|
|
||||||
|
|
||||||
#include <fg_typedefs.h>
|
#include <fg_typedefs.h>
|
||||||
#include <Aircraft/aircraft.hxx>
|
#include <Aircraft/aircraft.hxx>
|
||||||
|
@ -56,11 +55,15 @@
|
||||||
#include <Controls/controls.hxx>
|
#include <Controls/controls.hxx>
|
||||||
#include <GUI/gui.h>
|
#include <GUI/gui.h>
|
||||||
|
|
||||||
|
#include "hud_opts.hxx"
|
||||||
|
|
||||||
FG_USING_STD(deque);
|
FG_USING_STD(deque);
|
||||||
FG_USING_STD(vector);
|
FG_USING_STD(vector);
|
||||||
FG_USING_NAMESPACE(std);
|
FG_USING_NAMESPACE(std);
|
||||||
|
|
||||||
|
|
||||||
|
// some of Norman's crazy optimizations. :-)
|
||||||
|
|
||||||
#ifndef WIN32
|
#ifndef WIN32
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int x, y;
|
int x, y;
|
||||||
|
|
|
@ -10,7 +10,6 @@
|
||||||
|
|
||||||
#include <simgear/constants.h>
|
#include <simgear/constants.h>
|
||||||
#include <simgear/math/fg_random.h>
|
#include <simgear/math/fg_random.h>
|
||||||
#include <simgear/math/mat3.h>
|
|
||||||
#include <simgear/math/polar3d.hxx>
|
#include <simgear/math/polar3d.hxx>
|
||||||
|
|
||||||
#include <Aircraft/aircraft.hxx>
|
#include <Aircraft/aircraft.hxx>
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
|
|
||||||
#include <simgear/constants.h>
|
#include <simgear/constants.h>
|
||||||
#include <simgear/math/fg_random.h>
|
#include <simgear/math/fg_random.h>
|
||||||
#include <simgear/math/mat3.h>
|
|
||||||
#include <simgear/math/polar3d.hxx>
|
#include <simgear/math/polar3d.hxx>
|
||||||
|
|
||||||
#include <Aircraft/aircraft.hxx>
|
#include <Aircraft/aircraft.hxx>
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
|
|
||||||
#include <simgear/constants.h>
|
#include <simgear/constants.h>
|
||||||
#include <simgear/math/fg_random.h>
|
#include <simgear/math/fg_random.h>
|
||||||
#include <simgear/math/mat3.h>
|
|
||||||
#include <simgear/math/polar3d.hxx>
|
#include <simgear/math/polar3d.hxx>
|
||||||
|
|
||||||
#include <Aircraft/aircraft.hxx>
|
#include <Aircraft/aircraft.hxx>
|
||||||
|
|
|
@ -13,7 +13,6 @@
|
||||||
|
|
||||||
#include <simgear/constants.h>
|
#include <simgear/constants.h>
|
||||||
#include <simgear/math/fg_random.h>
|
#include <simgear/math/fg_random.h>
|
||||||
#include <simgear/math/mat3.h>
|
|
||||||
#include <simgear/math/polar3d.hxx>
|
#include <simgear/math/polar3d.hxx>
|
||||||
|
|
||||||
#include <Aircraft/aircraft.hxx>
|
#include <Aircraft/aircraft.hxx>
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
|
|
||||||
#include <simgear/constants.h>
|
#include <simgear/constants.h>
|
||||||
#include <simgear/math/fg_random.h>
|
#include <simgear/math/fg_random.h>
|
||||||
#include <simgear/math/mat3.h>
|
|
||||||
#include <simgear/math/polar3d.hxx>
|
#include <simgear/math/polar3d.hxx>
|
||||||
|
|
||||||
#include <Aircraft/aircraft.hxx>
|
#include <Aircraft/aircraft.hxx>
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
|
|
||||||
#include <simgear/constants.h>
|
#include <simgear/constants.h>
|
||||||
#include <simgear/math/fg_random.h>
|
#include <simgear/math/fg_random.h>
|
||||||
#include <simgear/math/mat3.h>
|
|
||||||
#include <simgear/math/polar3d.hxx>
|
#include <simgear/math/polar3d.hxx>
|
||||||
|
|
||||||
#include <Aircraft/aircraft.hxx>
|
#include <Aircraft/aircraft.hxx>
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
|
|
||||||
#include <simgear/constants.h>
|
#include <simgear/constants.h>
|
||||||
#include <simgear/math/fg_random.h>
|
#include <simgear/math/fg_random.h>
|
||||||
#include <simgear/math/mat3.h>
|
|
||||||
#include <simgear/math/polar3d.hxx>
|
#include <simgear/math/polar3d.hxx>
|
||||||
|
|
||||||
#include <Aircraft/aircraft.hxx>
|
#include <Aircraft/aircraft.hxx>
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
|
|
||||||
#include <simgear/constants.h>
|
#include <simgear/constants.h>
|
||||||
#include <simgear/math/fg_random.h>
|
#include <simgear/math/fg_random.h>
|
||||||
#include <simgear/math/mat3.h>
|
|
||||||
#include <simgear/math/polar3d.hxx>
|
#include <simgear/math/polar3d.hxx>
|
||||||
|
|
||||||
#include <Aircraft/aircraft.hxx>
|
#include <Aircraft/aircraft.hxx>
|
||||||
|
|
64
src/Cockpit/hud_opts.hxx
Normal file
64
src/Cockpit/hud_opts.hxx
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
// hud_opts.hxx -- hud optimization tools
|
||||||
|
//
|
||||||
|
// Probably written by Norman Vine, started sometime in 1998 or 1999.
|
||||||
|
//
|
||||||
|
// Copyright (C) 1999 FlightGear Project
|
||||||
|
//
|
||||||
|
// This program is free software; you can redistribute it and/or
|
||||||
|
// modify it under the terms of the GNU General Public License as
|
||||||
|
// published by the Free Software Foundation; either version 2 of the
|
||||||
|
// License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful, but
|
||||||
|
// WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
// General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with this program; if not, write to the Free Software
|
||||||
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
//
|
||||||
|
// $Id$
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef _HUD_OPTS_HXX
|
||||||
|
#define _HUD_OPTS_HXX
|
||||||
|
|
||||||
|
#ifndef __cplusplus
|
||||||
|
# error This library requires C++
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
# include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <simgear/compiler.h>
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(i386)
|
||||||
|
#define USE_X86_ASM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(USE_X86_ASM)
|
||||||
|
static __inline__ int FloatToInt(float f)
|
||||||
|
{
|
||||||
|
int r;
|
||||||
|
__asm__ ("fistpl %0" : "=m" (r) : "t" (f) : "st");
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
#elif defined(__MSC__) && defined(__WIN32__)
|
||||||
|
static __inline int FloatToInt(float f)
|
||||||
|
{
|
||||||
|
int r;
|
||||||
|
_asm {
|
||||||
|
fld f
|
||||||
|
fistp r
|
||||||
|
}
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
#define FloatToInt(F) ((int) ((F) < 0.0f ? (F)-0.5f : (F)+0.5f))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif // _HUD_OPTS_H
|
|
@ -11,7 +11,6 @@
|
||||||
|
|
||||||
#include <simgear/constants.h>
|
#include <simgear/constants.h>
|
||||||
#include <simgear/math/fg_random.h>
|
#include <simgear/math/fg_random.h>
|
||||||
#include <simgear/math/mat3.h>
|
|
||||||
#include <simgear/math/polar3d.hxx>
|
#include <simgear/math/polar3d.hxx>
|
||||||
|
|
||||||
#include <Aircraft/aircraft.hxx>
|
#include <Aircraft/aircraft.hxx>
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
|
|
||||||
#include <simgear/constants.h>
|
#include <simgear/constants.h>
|
||||||
#include <simgear/math/fg_random.h>
|
#include <simgear/math/fg_random.h>
|
||||||
#include <simgear/math/mat3.h>
|
|
||||||
#include <simgear/math/polar3d.hxx>
|
#include <simgear/math/polar3d.hxx>
|
||||||
|
|
||||||
#include <Aircraft/aircraft.hxx>
|
#include <Aircraft/aircraft.hxx>
|
||||||
|
|
|
@ -67,7 +67,6 @@
|
||||||
#include <simgear/constants.h> // for VERSION
|
#include <simgear/constants.h> // for VERSION
|
||||||
#include <simgear/debug/logstream.hxx>
|
#include <simgear/debug/logstream.hxx>
|
||||||
#include <simgear/math/fg_geodesy.hxx>
|
#include <simgear/math/fg_geodesy.hxx>
|
||||||
#include <simgear/math/mat3.h>
|
|
||||||
#include <simgear/math/polar3d.hxx>
|
#include <simgear/math/polar3d.hxx>
|
||||||
#include <simgear/math/fg_random.h>
|
#include <simgear/math/fg_random.h>
|
||||||
#include <simgear/misc/fgpath.hxx>
|
#include <simgear/misc/fgpath.hxx>
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
// This should be ported to plib/sg before you try to compile it. If
|
||||||
|
// you do the port please send it to me. :-)
|
||||||
|
|
||||||
#include <Math/mat3.h>
|
#include <Math/mat3.h>
|
||||||
#include <Include/fg_constants.h>
|
#include <Include/fg_constants.h>
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,6 @@
|
||||||
#include <simgear/logstream.hxx>
|
#include <simgear/logstream.hxx>
|
||||||
#include <simgear/constants.h>
|
#include <simgear/constants.h>
|
||||||
#include <simgear/fg_random.h>
|
#include <simgear/fg_random.h>
|
||||||
#include <simgear/mat3.h>
|
|
||||||
#include <simgear/polar3d.hxx>
|
#include <simgear/polar3d.hxx>
|
||||||
|
|
||||||
#include <Aircraft/aircraft.hxx>
|
#include <Aircraft/aircraft.hxx>
|
||||||
|
|
|
@ -46,7 +46,6 @@
|
||||||
#include <simgear/logstream.hxx>
|
#include <simgear/logstream.hxx>
|
||||||
#include <simgear/constants.h>
|
#include <simgear/constants.h>
|
||||||
#include <simgear/fg_random.h>
|
#include <simgear/fg_random.h>
|
||||||
#include <simgear/mat3.h>
|
|
||||||
#include <simgear/polar3d.hxx>
|
#include <simgear/polar3d.hxx>
|
||||||
|
|
||||||
#include <Aircraft/aircraft.hxx>
|
#include <Aircraft/aircraft.hxx>
|
||||||
|
|
|
@ -22,7 +22,6 @@
|
||||||
|
|
||||||
|
|
||||||
#include <simgear/constants.h>
|
#include <simgear/constants.h>
|
||||||
#include <simgear/math/mat3.h>
|
|
||||||
#include <simgear/math/point3d.hxx>
|
#include <simgear/math/point3d.hxx>
|
||||||
|
|
||||||
#include <Scenery/tileentry.hxx>
|
#include <Scenery/tileentry.hxx>
|
||||||
|
@ -98,8 +97,9 @@ int fgFRAGMENT::intersect( const Point3D& end0,
|
||||||
Point3D& result) const
|
Point3D& result) const
|
||||||
{
|
{
|
||||||
FGTileEntry *t;
|
FGTileEntry *t;
|
||||||
MAT3vec v1, v2, n, center;
|
sgVec3 v1, v2, n, center;
|
||||||
double p1[3], p2[3], p3[3];
|
sgVec3 p1, p2, p3;
|
||||||
|
sgVec3 temp;
|
||||||
double x, y, z; // temporary holding spot for result
|
double x, y, z; // temporary holding spot for result
|
||||||
double a, b, c, d;
|
double a, b, c, d;
|
||||||
double x0, y0, z0, x1, y1, z1, a1, b1, c1;
|
double x0, y0, z0, x1, y1, z1, a1, b1, c1;
|
||||||
|
@ -120,22 +120,28 @@ int fgFRAGMENT::intersect( const Point3D& end0,
|
||||||
// printf(".");
|
// printf(".");
|
||||||
|
|
||||||
// get face vertex coordinates
|
// get face vertex coordinates
|
||||||
center[0] = t->center.x();
|
sgSetVec3( center, t->center.x(), t->center.y(), t->center.z() );
|
||||||
center[1] = t->center.y();
|
|
||||||
center[2] = t->center.z();
|
|
||||||
|
|
||||||
MAT3_ADD_VEC(p1, t->nodes[(*current).n1], center);
|
sgSetVec3( temp, t->nodes[(*current).n1].x(),
|
||||||
MAT3_ADD_VEC(p2, t->nodes[(*current).n2], center);
|
t->nodes[(*current).n1].y(), t->nodes[(*current).n1].z() );
|
||||||
MAT3_ADD_VEC(p3, t->nodes[(*current).n3], center);
|
sgAddVec3( p1, temp, center );
|
||||||
|
|
||||||
|
sgSetVec3( temp, t->nodes[(*current).n2].x(),
|
||||||
|
t->nodes[(*current).n2].y(), t->nodes[(*current).n2].z() );
|
||||||
|
sgAddVec3( p2, temp, center );
|
||||||
|
|
||||||
|
sgSetVec3( temp, t->nodes[(*current).n3].x(),
|
||||||
|
t->nodes[(*current).n3].y(), t->nodes[(*current).n3].z() );
|
||||||
|
sgAddVec3( p3, temp, center );
|
||||||
|
|
||||||
// printf("point 1 = %.2f %.2f %.2f\n", p1[0], p1[1], p1[2]);
|
// printf("point 1 = %.2f %.2f %.2f\n", p1[0], p1[1], p1[2]);
|
||||||
// printf("point 2 = %.2f %.2f %.2f\n", p2[0], p2[1], p2[2]);
|
// printf("point 2 = %.2f %.2f %.2f\n", p2[0], p2[1], p2[2]);
|
||||||
// printf("point 3 = %.2f %.2f %.2f\n", p3[0], p3[1], p3[2]);
|
// printf("point 3 = %.2f %.2f %.2f\n", p3[0], p3[1], p3[2]);
|
||||||
|
|
||||||
// calculate two edge vectors, and the face normal
|
// calculate two edge vectors, and the face normal
|
||||||
MAT3_SUB_VEC(v1, p2, p1);
|
sgSubVec3( v1, p2, p1 );
|
||||||
MAT3_SUB_VEC(v2, p3, p1);
|
sgSubVec3( v2, p3, p1 );
|
||||||
MAT3cross_product(n, v1, v2);
|
sgVectorProductVec3( n, v1, v2 );
|
||||||
|
|
||||||
// calculate the plane coefficients for the plane defined by
|
// calculate the plane coefficients for the plane defined by
|
||||||
// this face. If n is the normal vector, n = (a, b, c) and p1
|
// this face. If n is the normal vector, n = (a, b, c) and p1
|
||||||
|
@ -282,7 +288,7 @@ int fgFRAGMENT::intersect( const Point3D& end0,
|
||||||
// all dimensions are really small so lets call it close
|
// all dimensions are really small so lets call it close
|
||||||
// enough and return a successful match
|
// enough and return a successful match
|
||||||
result = Point3D(x, y, z);
|
result = Point3D(x, y, z);
|
||||||
return(1);
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// check if intersection point is on the same side of p1 <-> p2 as p3
|
// check if intersection point is on the same side of p1 <-> p2 as p3
|
||||||
|
@ -314,11 +320,11 @@ int fgFRAGMENT::intersect( const Point3D& end0,
|
||||||
|
|
||||||
// printf( "intersection point = %.2f %.2f %.2f\n", x, y, z);
|
// printf( "intersection point = %.2f %.2f %.2f\n", x, y, z);
|
||||||
result = Point3D(x, y, z);
|
result = Point3D(x, y, z);
|
||||||
return(1);
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// printf("\n");
|
// printf("\n");
|
||||||
|
|
||||||
return(0);
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,6 @@
|
||||||
|
|
||||||
#include <simgear/constants.h>
|
#include <simgear/constants.h>
|
||||||
#include <simgear/debug/logstream.hxx>
|
#include <simgear/debug/logstream.hxx>
|
||||||
#include <simgear/math/mat3.h>
|
|
||||||
#include <simgear/math/fg_geodesy.hxx>
|
#include <simgear/math/fg_geodesy.hxx>
|
||||||
#include <simgear/math/fg_random.h>
|
#include <simgear/math/fg_random.h>
|
||||||
#include <simgear/math/point3d.hxx>
|
#include <simgear/math/point3d.hxx>
|
||||||
|
@ -76,16 +75,15 @@ static double tex_coords[FG_MAX_NODES*3][3];
|
||||||
|
|
||||||
// given three points defining a triangle, calculate the normal
|
// given three points defining a triangle, calculate the normal
|
||||||
static void calc_normal(Point3D p1, Point3D p2,
|
static void calc_normal(Point3D p1, Point3D p2,
|
||||||
Point3D p3, double normal[3])
|
Point3D p3, sgVec3 normal)
|
||||||
{
|
{
|
||||||
double v1[3], v2[3];
|
sgVec3 v1, v2;
|
||||||
double temp;
|
|
||||||
|
|
||||||
v1[0] = p2[0] - p1[0]; v1[1] = p2[1] - p1[1]; v1[2] = p2[2] - p1[2];
|
v1[0] = p2[0] - p1[0]; v1[1] = p2[1] - p1[1]; v1[2] = p2[2] - p1[2];
|
||||||
v2[0] = p3[0] - p1[0]; v2[1] = p3[1] - p1[1]; v2[2] = p3[2] - p1[2];
|
v2[0] = p3[0] - p1[0]; v2[1] = p3[1] - p1[1]; v2[2] = p3[2] - p1[2];
|
||||||
|
|
||||||
MAT3cross_product(normal, v1, v2);
|
sgVectorProductVec3( normal, v1, v2 );
|
||||||
MAT3_NORMALIZE_VEC(normal,temp);
|
sgNormalizeVec3( normal );
|
||||||
|
|
||||||
// fgPrintf( FG_TERRAIN, FG_DEBUG, " Normal = %.2f %.2f %.2f\n",
|
// fgPrintf( FG_TERRAIN, FG_DEBUG, " Normal = %.2f %.2f %.2f\n",
|
||||||
// normal[0], normal[1], normal[2]);
|
// normal[0], normal[1], normal[2]);
|
||||||
|
@ -152,7 +150,7 @@ ssgBranch *fgGenTile( const string& path, FGTileEntry *t) {
|
||||||
// material
|
// material
|
||||||
FGMaterial m = fragment.material_ptr->get_m();
|
FGMaterial m = fragment.material_ptr->get_m();
|
||||||
double tex_width = m.get_xsize();
|
double tex_width = m.get_xsize();
|
||||||
double tex_height = m.get_ysize();
|
// double tex_height = m.get_ysize();
|
||||||
|
|
||||||
// set ssgState
|
// set ssgState
|
||||||
state = fragment.material_ptr->get_state();
|
state = fragment.material_ptr->get_state();
|
||||||
|
@ -273,7 +271,8 @@ ssgBranch *fgGenTile( const string& path, FGTileEntry *t) {
|
||||||
ssgBranch *fgObjLoad( const string& path, FGTileEntry *t, const bool is_base) {
|
ssgBranch *fgObjLoad( const string& path, FGTileEntry *t, const bool is_base) {
|
||||||
fgFRAGMENT fragment;
|
fgFRAGMENT fragment;
|
||||||
Point3D pp;
|
Point3D pp;
|
||||||
double approx_normal[3] /*, normal[3], scale = 0.0 */;
|
sgVec3 approx_normal;
|
||||||
|
// double normal[3], scale = 0.0;
|
||||||
// double x, y, z, xmax, xmin, ymax, ymin, zmax, zmin;
|
// double x, y, z, xmax, xmin, ymax, ymin, zmax, zmin;
|
||||||
// GLfloat sgenparams[] = { 1.0, 0.0, 0.0, 0.0 };
|
// GLfloat sgenparams[] = { 1.0, 0.0, 0.0, 0.0 };
|
||||||
// GLint display_list = 0;
|
// GLint display_list = 0;
|
||||||
|
|
|
@ -35,7 +35,6 @@
|
||||||
#include <simgear/constants.h>
|
#include <simgear/constants.h>
|
||||||
#include <simgear/debug/logstream.hxx>
|
#include <simgear/debug/logstream.hxx>
|
||||||
#include <simgear/math/fg_geodesy.hxx>
|
#include <simgear/math/fg_geodesy.hxx>
|
||||||
#include <simgear/math/mat3.h>
|
|
||||||
#include <simgear/math/point3d.hxx>
|
#include <simgear/math/point3d.hxx>
|
||||||
#include <simgear/math/polar3d.hxx>
|
#include <simgear/math/polar3d.hxx>
|
||||||
#include <simgear/math/vector.hxx>
|
#include <simgear/math/vector.hxx>
|
||||||
|
@ -152,14 +151,14 @@ void FGTileMgr::load_tile( const FGBucket& b, int cache_index) {
|
||||||
|
|
||||||
// Calculate shortest distance from point to line
|
// Calculate shortest distance from point to line
|
||||||
static double point_line_dist_squared( const Point3D& tc, const Point3D& vp,
|
static double point_line_dist_squared( const Point3D& tc, const Point3D& vp,
|
||||||
MAT3vec d )
|
sgVec3 d )
|
||||||
{
|
{
|
||||||
MAT3vec p, p0;
|
sgVec3 p, p0;
|
||||||
|
|
||||||
p[0] = tc.x(); p[1] = tc.y(); p[2] = tc.z();
|
sgSetVec3( p, tc.x(), tc.y(), tc.z() );
|
||||||
p0[0] = vp.x(); p0[1] = vp.y(); p0[2] = vp.z();
|
sgSetVec3( p0, vp.x(), vp.y(), vp.z() );
|
||||||
|
|
||||||
return fgPointLineSquared(p, p0, d);
|
return sgPointLineDistSquared(p, p0, d);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -174,13 +173,11 @@ FGTileMgr::current_elev_new( const FGBucket& p ) {
|
||||||
Point3D abs_view_pos = current_view.get_abs_view_pos();
|
Point3D abs_view_pos = current_view.get_abs_view_pos();
|
||||||
Point3D earth_center(0.0);
|
Point3D earth_center(0.0);
|
||||||
Point3D result;
|
Point3D result;
|
||||||
MAT3vec local_up;
|
sgVec3 local_up;
|
||||||
double dist, lat_geod, alt, sea_level_r;
|
double dist, lat_geod, alt, sea_level_r;
|
||||||
int index;
|
int index;
|
||||||
|
|
||||||
local_up[0] = abs_view_pos.x();
|
sgSetVec3( local_up, abs_view_pos.x(), abs_view_pos.y(), abs_view_pos.z() );
|
||||||
local_up[1] = abs_view_pos.y();
|
|
||||||
local_up[2] = abs_view_pos.z();
|
|
||||||
|
|
||||||
// Find current translation offset
|
// Find current translation offset
|
||||||
// fgBucketFind(lon * RAD_TO_DEG, lat * RAD_TO_DEG, &p);
|
// fgBucketFind(lon * RAD_TO_DEG, lat * RAD_TO_DEG, &p);
|
||||||
|
@ -272,7 +269,7 @@ FGTileMgr::current_elev( double lon, double lat, const Point3D& abs_view_pos ) {
|
||||||
fgFRAGMENT *frag_ptr;
|
fgFRAGMENT *frag_ptr;
|
||||||
Point3D earth_center(0.0);
|
Point3D earth_center(0.0);
|
||||||
Point3D result;
|
Point3D result;
|
||||||
MAT3vec local_up;
|
sgVec3 local_up;
|
||||||
double dist, lat_geod, alt, sea_level_r;
|
double dist, lat_geod, alt, sea_level_r;
|
||||||
int index;
|
int index;
|
||||||
|
|
||||||
|
@ -985,9 +982,9 @@ int FGTileMgr::update( void ) {
|
||||||
|
|
||||||
static int
|
static int
|
||||||
inrange( const double radius, const Point3D& center, const Point3D& vp,
|
inrange( const double radius, const Point3D& center, const Point3D& vp,
|
||||||
const MAT3vec up)
|
const sgVec3 up)
|
||||||
{
|
{
|
||||||
MAT3vec u, u1, v;
|
sgVec3 u, u1, v;
|
||||||
// double tmp;
|
// double tmp;
|
||||||
|
|
||||||
// u = p - p0
|
// u = p - p0
|
||||||
|
@ -998,14 +995,14 @@ inrange( const double radius, const Point3D& center, const Point3D& vp,
|
||||||
// calculate the projection, u1, of u along d.
|
// calculate the projection, u1, of u along d.
|
||||||
// u1 = ( dot_prod(u, d) / dot_prod(d, d) ) * d;
|
// u1 = ( dot_prod(u, d) / dot_prod(d, d) ) * d;
|
||||||
|
|
||||||
MAT3_SCALE_VEC(u1, up,
|
sgScaleVec3( u1, up,
|
||||||
(MAT3_DOT_PRODUCT(u, up) / MAT3_DOT_PRODUCT(up, up)) );
|
(sgScalarProductVec3(u, up) / sgScalarProductVec3(up, up)) );
|
||||||
|
|
||||||
// v = u - u1 = vector from closest point on line, p1, to the
|
// v = u - u1 = vector from closest point on line, p1, to the
|
||||||
// original point, p.
|
// original point, p.
|
||||||
MAT3_SUB_VEC(v, u, u1);
|
sgSubVec3( v, u, u1 );
|
||||||
|
|
||||||
return( FG_SQUARE(radius) >= MAT3_DOT_PRODUCT(v, v));
|
return( FG_SQUARE(radius) >= sgScalarProductVec3(v, v));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -52,7 +52,6 @@ FG_USING_STD(string);
|
||||||
#include <simgear/debug/logstream.hxx>
|
#include <simgear/debug/logstream.hxx>
|
||||||
#include <simgear/math/fg_geodesy.hxx>
|
#include <simgear/math/fg_geodesy.hxx>
|
||||||
#include <simgear/math/interpolater.hxx>
|
#include <simgear/math/interpolater.hxx>
|
||||||
#include <simgear/math/mat3.h>
|
|
||||||
#include <simgear/math/polar3d.hxx>
|
#include <simgear/math/polar3d.hxx>
|
||||||
#include <simgear/misc/fgpath.hxx>
|
#include <simgear/misc/fgpath.hxx>
|
||||||
|
|
||||||
|
|
|
@ -54,7 +54,6 @@
|
||||||
#include <simgear/constants.h>
|
#include <simgear/constants.h>
|
||||||
#include <simgear/debug/logstream.hxx>
|
#include <simgear/debug/logstream.hxx>
|
||||||
#include <simgear/math/fg_geodesy.hxx>
|
#include <simgear/math/fg_geodesy.hxx>
|
||||||
#include <simgear/math/mat3.h>
|
|
||||||
#include <simgear/math/point3d.hxx>
|
#include <simgear/math/point3d.hxx>
|
||||||
#include <simgear/math/polar3d.hxx>
|
#include <simgear/math/polar3d.hxx>
|
||||||
#include <simgear/math/vector.hxx>
|
#include <simgear/math/vector.hxx>
|
||||||
|
|
|
@ -53,7 +53,6 @@
|
||||||
#include <simgear/constants.h>
|
#include <simgear/constants.h>
|
||||||
#include <simgear/debug/logstream.hxx>
|
#include <simgear/debug/logstream.hxx>
|
||||||
#include <simgear/math/fg_geodesy.hxx>
|
#include <simgear/math/fg_geodesy.hxx>
|
||||||
#include <simgear/math/mat3.h>
|
|
||||||
#include <simgear/math/point3d.hxx>
|
#include <simgear/math/point3d.hxx>
|
||||||
#include <simgear/math/polar3d.hxx>
|
#include <simgear/math/polar3d.hxx>
|
||||||
#include <simgear/math/vector.hxx>
|
#include <simgear/math/vector.hxx>
|
||||||
|
|
Loading…
Add table
Reference in a new issue