From 0ea5fc66924303d1bf73ba283a383e2aadee02f2 Mon Sep 17 00:00:00 2001 From: neodarz Date: Sat, 11 Aug 2018 20:21:34 +0200 Subject: Initial commit --- docs/doxygen/nel/a03519.html | 1044 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1044 insertions(+) create mode 100644 docs/doxygen/nel/a03519.html (limited to 'docs/doxygen/nel/a03519.html') diff --git a/docs/doxygen/nel/a03519.html b/docs/doxygen/nel/a03519.html new file mode 100644 index 00000000..53046a9d --- /dev/null +++ b/docs/doxygen/nel/a03519.html @@ -0,0 +1,1044 @@ + + +NeL: NL3D::CTileBorder class Reference + + + +
+

NL3D::CTileBorder Class Reference

#include <tile_bank.h> +

+


Detailed Description

+This class is a tile set. It handles all the tile of the same material.
Author:
Cyril Corvazier

+Nevrax France

+
Date:
2000
+ +

+ +

+Definition at line 224 of file tile_bank.h. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

enum  TBorder {
+  top = 0, +bottom, +left, +right, +
+  borderCount +
+ }

Public Member Functions

 CTileBorder ()
void doubleSize ()
void get (int &width, int &height, std::vector< NLMISC::CBGRA > &array) const
sint32 getHeight () const
sint32 getWidth () const
bool isSet () const
void operator= (const CTileBorder &border)
bool operator== (const CTileBorder &border) const
void reset ()
void rotate ()
void serial (NLMISC::IStream &f) throw (NLMISC::EStream)
void set (int width, int height, const std::vector< NLMISC::CBGRA > &array)

Static Public Member Functions

bool allAlphaSet (const CTileBorder &border, TBorder where, int &pixel, int &composante)
bool compare (const CTileBorder &border1, const CTileBorder &border2, TBorder where1, TBorder where2, int &pixel, int &composante)

Private Attributes

std::vector< NLMISC::CBGRA_Borders [borderCount]
sint32 _Height
bool _Set
sint32 _Width

Static Private Attributes

const sint _Version = 0
+


Member Enumeration Documentation

+

+ + + + +
+ + +
enum NL3D::CTileBorder::TBorder +
+
+ + + + + +
+   + + +

+

Enumeration values:
+ + + + + + +
top  +
bottom  +
left  +
right  +
borderCount  +
+
+ +

+Definition at line 227 of file tile_bank.h. +

+

00227 { top=0, bottom, left, right, borderCount };
+
+


Constructor & Destructor Documentation

+

+ + + + +
+ + + + + + + + + +
NL3D::CTileBorder::CTileBorder  )  [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 228 of file tile_bank.h. +

+References reset(). +

+

00229         {
+00230                 reset();
+00231         }
+
+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool NL3D::CTileBorder::allAlphaSet const CTileBorder border,
TBorder  where,
int &  pixel,
int &  composante
[static]
+
+ + + + + +
+   + + +

+ +

+Definition at line 1731 of file tile_bank.cpp. +

+References border, and nlassert. +

+

01732 {
+01733         // Check border is initialized
+01734         nlassert (border.isSet());
+01735 
+01736         // always Alpha
+01737         composante=3;
+01738 
+01739         for (pixel=0; pixel<(int)border._Borders[where].size(); pixel++)
+01740         {
+01741                 if (border._Borders[where][pixel].A!=0xff)
+01742                         return false;
+01743         }
+01744 
+01745         return true;
+01746 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool NL3D::CTileBorder::compare const CTileBorder border1,
const CTileBorder border2,
TBorder  where1,
TBorder  where2,
int &  pixel,
int &  composante
[static]
+
+ + + + + +
+   + + +

+ +

+Definition at line 1696 of file tile_bank.cpp. +

+References _Borders, isSet(), and nlassert. +

+

01697 {
+01698         // Check border is initialized
+01699         nlassert (border1.isSet());
+01700         nlassert (border2.isSet());
+01701 
+01702         if (border1._Borders[where1].size()!=border2._Borders[where2].size())
+01703                 return false;
+01704         for (pixel=0; pixel<(int)border1._Borders[where1].size(); pixel++)
+01705         {
+01706                 if (border1._Borders[where1][pixel].R!=border2._Borders[where2][pixel].R)
+01707                 {
+01708                         composante=0;
+01709                         return false;
+01710                 }
+01711                 else if (border1._Borders[where1][pixel].G!=border2._Borders[where2][pixel].G)
+01712                 {
+01713                         composante=1;
+01714                         return false;
+01715                 }
+01716                 else if (border1._Borders[where1][pixel].B!=border2._Borders[where2][pixel].B)
+01717                 {
+01718                         composante=2;
+01719                         return false;
+01720                 }
+01721                 else if (border1._Borders[where1][pixel].A!=border2._Borders[where2][pixel].A)
+01722                 {
+01723                         composante=3;
+01724                         return false;
+01725                 }
+01726         }
+01727 
+01728         return true;
+01729 }
+
+

+ + + + +
+ + + + + + + + + +
void NL3D::CTileBorder::doubleSize  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 1765 of file tile_bank.cpp. +

+References _Borders, bottom, left, right, top, and w. +

+Referenced by NL3D::CTileSet::checkTile256(), and NL3D::CTileSet::setBorder(). +

+

01766 {
+01767         _Borders[top].resize (_Width*2);
+01768         _Borders[bottom].resize (_Width*2);
+01769         _Borders[left].resize (_Height*2);
+01770         _Borders[right].resize (_Height*2);
+01771 
+01772         for (int w=0; w<_Width; w++)
+01773         {
+01774                 _Borders[top][w+_Width]=_Borders[top][w];
+01775                 _Borders[bottom][w+_Width]=_Borders[bottom][w];
+01776         }
+01777         for (int h=0; h<_Height; h++)
+01778         {
+01779                 _Borders[left][h+_Height]=_Borders[left][h];
+01780                 _Borders[right][h+_Height]=_Borders[right][h];
+01781         }
+01782 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
void NL3D::CTileBorder::get int &  width,
int &  height,
std::vector< NLMISC::CBGRA > &  array
const
+
+ + + + + +
+   + + +

+ +

+Definition at line 1649 of file tile_bank.cpp. +

+References _Borders, _Set, bottom, height, left, nlassert, right, size, top, uint, w, and width. +

+

01650 {
+01651         // Go
+01652         if (_Set)
+01653         {
+01654                 width=_Width;
+01655                 height=_Height;
+01656                 array.resize (0);
+01657                 array.resize (_Width*_Height);
+01658                 nlassert (_Borders[bottom].size()==(uint)_Width);
+01659                 nlassert (_Borders[top].size()==(uint)_Width);
+01660                 nlassert (_Borders[left].size()==(uint)_Height);
+01661                 nlassert (_Borders[right].size()==(uint)_Height);
+01662 
+01663                 // Fill
+01664                 CBGRA black(0,0,0);
+01665                 for (int p=0; p<_Width*_Height; p++)
+01666                 {
+01667                         array[p]=black;
+01668                 }
+01669 
+01670                 // Last line
+01671                 int lastLine=(_Height-1)*_Width;
+01672                 int lastCol=(_Width-1);
+01673 
+01674                 // Copy top/bottom border
+01675                 for (int w=0; w<_Width; w++)
+01676                 {
+01677                         array[w]=_Borders[top][w];
+01678                         array[w+lastLine]=_Borders[bottom][w];
+01679                 }
+01680 
+01681                 // Copy left/right border
+01682                 for (int h=0; h<_Height; h++)
+01683                 {
+01684                         array[h*_Width]=_Borders[left][h];
+01685                         array[h*_Width+lastCol]=_Borders[right][h];
+01686                 }
+01687         }
+01688         else
+01689         {
+01690                 width=0;
+01691                 height=0;
+01692                 array.resize (0);
+01693         }
+01694 }
+
+

+ + + + +
+ + + + + + + + + +
sint32 NL3D::CTileBorder::getHeight  )  const [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 254 of file tile_bank.h. +

+References sint32. +

+

00255         {
+00256                 return _Height;
+00257         }
+
+

+ + + + +
+ + + + + + + + + +
sint32 NL3D::CTileBorder::getWidth  )  const [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 250 of file tile_bank.h. +

+References sint32. +

+

00251         {
+00252                 return _Width;
+00253         }
+
+

+ + + + +
+ + + + + + + + + +
bool NL3D::CTileBorder::isSet  )  const [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 238 of file tile_bank.h. +

+References _Set. +

+Referenced by NL3D::CTileSet::checkTile128(), NL3D::CTileSet::checkTile256(), compare(), and NL3D::CTileSet::getExistingTransitionTile(). +

+

00239         {
+00240                 return _Set;
+00241         }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CTileBorder::operator= const CTileBorder border  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 1753 of file tile_bank.cpp. +

+References _Borders, _Set, border, bottom, left, right, and top. +

+

01754 {
+01755         _Set=border._Set;
+01756         _Width=border._Width;
+01757         _Height=border._Width;
+01758         _Borders[top]=border._Borders[top];
+01759         _Borders[bottom]=border._Borders[bottom];
+01760         _Borders[left]=border._Borders[left];
+01761         _Borders[right]=border._Borders[right];
+01762 }
+
+

+ + + + +
+ + + + + + + + + + +
bool NL3D::CTileBorder::operator== const CTileBorder border  )  const
+
+ + + + + +
+   + + +

+ +

+Definition at line 1748 of file tile_bank.cpp. +

+References _Borders, and border. +

+

01749 {
+01750         return (_Width==border._Width) && (_Height==border._Height) && (_Borders==border._Borders);
+01751 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CTileBorder::reset void   )  [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 242 of file tile_bank.h. +

+References _Borders, _Set, bottom, left, right, and top. +

+Referenced by NL3D::CTileSet::cleanUnusedData(), NL3D::CTileSet::clearTransition(), CTileBorder(), and NL3D::CTileSet::deleteBordersIfLast(). +

+

00243         {
+00244                 _Set=false;
+00245                 _Borders[top].clear();
+00246                 _Borders[bottom].clear();
+00247                 _Borders[left].clear();
+00248                 _Borders[right].clear();
+00249         }
+
+

+ + + + +
+ + + + + + + + + +
void NL3D::CTileBorder::rotate  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 1784 of file tile_bank.cpp. +

+References _Borders, bottom, left, right, sint32, size, top, and uint. +

+

01785 {
+01786         // Copy the right
+01787         std::vector<NLMISC::CBGRA> tmpLeft=_Borders[left];
+01788 
+01789         // Top inverted becomes left
+01790         uint i, size;
+01791         size=_Borders[top].size();
+01792         _Borders[left].resize (size);
+01793 
+01794         // copy inverted
+01795         for (i=0; i<size; i++)
+01796                 _Borders[left][i]=_Borders[top][size-i-1];
+01797 
+01798         // Right become top
+01799         _Borders[top]=_Borders[right];
+01800 
+01801         // bottom inverted becomes right
+01802         size=_Borders[bottom].size();
+01803         _Borders[right].resize (size);
+01804 
+01805         // copy inverted
+01806         for (i=0; i<size; i++)
+01807                 _Borders[right][i]=_Borders[bottom][size-i-1];
+01808 
+01809         // Left become bottom
+01810         _Borders[bottom]=tmpLeft;
+01811 
+01812         // Invert size
+01813         sint32 tmpSize=_Width;
+01814         _Width=_Height;
+01815         _Height=tmpSize;
+01816 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CTileBorder::serial NLMISC::IStream f  )  throw (NLMISC::EStream)
+
+ + + + + +
+   + + +

+ +

+Definition at line 1599 of file tile_bank.cpp. +

+Referenced by NL3D::CTileSet::serial(). +

+

01600 {
+01601         (void)f.serialVersion(_Version);
+01602 
+01603         f.serial (_Set);
+01604         f.serial (_Width);
+01605         f.serial (_Height);
+01606         f.serialCont (_Borders[top]);
+01607         f.serialCont (_Borders[bottom]);
+01608         f.serialCont (_Borders[left]);
+01609         f.serialCont (_Borders[right]);
+01610 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
void NL3D::CTileBorder::set int  width,
int  height,
const std::vector< NLMISC::CBGRA > &  array
+
+ + + + + +
+   + + +

+ +

+Definition at line 1612 of file tile_bank.cpp. +

+References _Borders, _Set, bottom, height, left, nlassert, right, sint, top, w, and width. +

+

01613 {
+01614         // Check array size
+01615         nlassert (width>0);
+01616         nlassert (height>0);
+01617         nlassert ((sint)array.size()==width*height);
+01618 
+01619         // Copy size
+01620         _Width=width;
+01621         _Height=height;
+01622 
+01623         // Last line
+01624         int lastLine=(_Height-1)*width;
+01625         int lastCol=(_Width-1);
+01626         _Borders[top].resize (_Width);
+01627         _Borders[bottom].resize (_Width);
+01628         _Borders[left].resize (_Height);
+01629         _Borders[right].resize (_Height);
+01630 
+01631         // Copy top/bottom border
+01632         for (int w=0; w<_Width; w++)
+01633         {
+01634                 _Borders[top][w]=array[w];
+01635                 _Borders[bottom][w]=array[w+lastLine];
+01636         }
+01637 
+01638         // Copy left/right border
+01639         for (int h=0; h<_Height; h++)
+01640         {
+01641                 _Borders[left][h]=array[h*_Width];
+01642                 _Borders[right][h]=array[h*_Width+lastCol];
+01643         }
+01644 
+01645         // Set
+01646         _Set=true;
+01647 }
+
+


Field Documentation

+

+ + + + +
+ + +
std::vector<NLMISC::CBGRA> NL3D::CTileBorder::_Borders[borderCount] [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 267 of file tile_bank.h. +

+Referenced by compare(), doubleSize(), get(), operator=(), operator==(), reset(), rotate(), and set().

+

+ + + + +
+ + +
sint32 NL3D::CTileBorder::_Height [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 266 of file tile_bank.h.

+

+ + + + +
+ + +
bool NL3D::CTileBorder::_Set [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 264 of file tile_bank.h. +

+Referenced by get(), isSet(), operator=(), reset(), and set().

+

+ + + + +
+ + +
const sint NL3D::CTileBorder::_Version = 0 [static, private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 1597 of file tile_bank.cpp.

+

+ + + + +
+ + +
sint32 NL3D::CTileBorder::_Width [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 265 of file tile_bank.h.

+


The documentation for this class was generated from the following files: +
Generated on Tue Mar 16 08:04:21 2004 for NeL by + +doxygen +1.3.6
+ + -- cgit v1.2.1