00001 // Filename: luse.h 00002 // Created by: drose (13Jan99) 00003 // 00004 //////////////////////////////////////////////////////////////////// 00005 // 00006 // PANDA 3D SOFTWARE 00007 // Copyright (c) Carnegie Mellon University. All rights reserved. 00008 // 00009 // All use of this software is subject to the terms of the revised BSD 00010 // license. You should have received a copy of this license along 00011 // with this source code in a file named "LICENSE." 00012 // 00013 //////////////////////////////////////////////////////////////////// 00014 00015 #ifndef LUSE_H 00016 #define LUSE_H 00017 00018 //////////////////////////////////////////////////////////////////// 00019 // 00020 // This file defines a number of vector-based classes that are 00021 // designed for specific uses. These all inherit from 00022 // LVecBase[234][fd], which is the base of all linear algebra vectors. 00023 // 00024 // LPoint[234][fd] 00025 // 00026 // This should be used to represent a specific point in space. It 00027 // inherits most properties from LVecBase. 00028 // 00029 // LVector[234][fd] 00030 // 00031 // This should be used to represent a vector, or a distance between 00032 // two points in space. 00033 // 00034 // The distinction between LPoint and LVector is worth emphasizing. 00035 // They differ in some subtle typing behavior (vector - vector = 00036 // vector, point + vector = point, point - point = vector) and also in 00037 // the way they are transformed when multiplied by a matrix (a point 00038 // gets the translation component of the matrix, while the vector does 00039 // not). Also, vector has length() and normalize() functions defined 00040 // for it, while point does not. 00041 // 00042 // LPoint and LVector should be used whenever the concept of "point" 00043 // or "vector" applies. If neither applies--for instance, if you are 00044 // storing a plane equation or some such nonsense--use the base class, 00045 // LVecBase. 00046 // 00047 // This file also typedefs the following: 00048 // 00049 // Vertex[fd] 00050 // Normal[fd] 00051 // TexCoord[fd] 00052 // Color[fd] 00053 // RGBColor[fd] 00054 // 00055 // These classes are typedefs of LPoint or LVector, as appropriate, 00056 // and are intended to store a specific kind of rendering attribute. 00057 // (Color is a four-component color; RGBColor is three-component.) 00058 // 00059 //////////////////////////////////////////////////////////////////// 00060 00061 // All of the guts is actually defined in this other header file, 00062 // which is not intended to be included directly by the user. 00063 #include "aa_luse.h" 00064 00065 #endif 00066