mirror of
https://gitlab.com/shinovon/re3-symbian.git
synced 2026-05-23 01:57:21 +03:00
Initial commit
This commit is contained in:
commit
77cdaaf97e
827 changed files with 418745 additions and 0 deletions
169
vendor/librw/tools/im3d/tristrip.cpp
vendored
Normal file
169
vendor/librw/tools/im3d/tristrip.cpp
vendored
Normal file
|
|
@ -0,0 +1,169 @@
|
|||
#include <rw.h>
|
||||
#include <skeleton.h>
|
||||
|
||||
#include "im3d.h"
|
||||
|
||||
float TriStripData[36][5] = {
|
||||
{ 0.000f, 1.000f, -1.000f, 0.000f, 0.000f},
|
||||
{ 0.000f, 1.000f, 1.000f, 0.000f, 1.000f},
|
||||
|
||||
{ 0.707f, 0.707f, -1.000f, 0.125f, 0.000f},
|
||||
{ 0.707f, 0.707f, 1.000f, 0.125f, 1.000f},
|
||||
|
||||
{ 1.000f, 0.000f, -1.000f, 0.250f, 0.000f},
|
||||
{ 1.000f, 0.000f, 1.000f, 0.250f, 1.000f},
|
||||
|
||||
{ 0.707f, -0.707f, -1.000f, 0.375f, 0.000f},
|
||||
{ 0.707f, -0.707f, 1.000f, 0.375f, 1.000f},
|
||||
|
||||
{ 0.000f, -1.000f, -1.000f, 0.500f, 0.000f},
|
||||
{ 0.000f, -1.000f, 1.000f, 0.500f, 1.000f},
|
||||
|
||||
{-0.707f, -0.707f, -1.000f, 0.625f, 0.000f},
|
||||
{-0.707f, -0.707f, 1.000f, 0.625f, 1.000f},
|
||||
|
||||
{-1.000f, -0.000f, -1.000f, 0.750f, 0.000f},
|
||||
{-1.000f, -0.000f, 1.000f, 0.750f, 1.000f},
|
||||
|
||||
{-0.707f, 0.707f, -1.000f, 0.875f, 0.000f},
|
||||
{-0.707f, 0.707f, 1.000f, 0.875f, 1.000f},
|
||||
|
||||
{ 0.000f, 1.000f, -1.000f, 1.000f, 0.000f},
|
||||
{ 0.000f, 1.000f, 1.000f, 1.000f, 1.000f},
|
||||
|
||||
{ 0.000f, 1.000f, 1.000f, 0.000f, 0.000f},
|
||||
{ 0.000f, 1.000f, -1.000f, 0.000f, 1.000f},
|
||||
|
||||
{ 0.707f, 0.707f, 1.000f, 0.125f, 0.000f},
|
||||
{ 0.707f, 0.707f, -1.000f, 0.125f, 1.000f},
|
||||
|
||||
{ 1.000f, 0.000f, 1.000f, 0.250f, 0.000f},
|
||||
{ 1.000f, 0.000f, -1.000f, 0.250f, 1.000f},
|
||||
|
||||
{ 0.707f, -0.707f, 1.000f, 0.375f, 0.000f},
|
||||
{ 0.707f, -0.707f, -1.000f, 0.375f, 1.000f},
|
||||
|
||||
{ 0.000f, -1.000f, 1.000f, 0.500f, 0.000f},
|
||||
{ 0.000f, -1.000f, -1.000f, 0.500f, 1.000f},
|
||||
|
||||
{-0.707f, -0.707f, 1.000f, 0.625f, 0.000f},
|
||||
{-0.707f, -0.707f, -1.000f, 0.625f, 1.000f},
|
||||
|
||||
{-1.000f, -0.000f, 1.000f, 0.750f, 0.000f},
|
||||
{-1.000f, -0.000f, -1.000f, 0.750f, 1.000f},
|
||||
|
||||
{-0.707f, 0.707f, 1.000f, 0.875f, 0.000f},
|
||||
{-0.707f, 0.707f, -1.000f, 0.875f, 1.000f},
|
||||
|
||||
{ 0.000f, 1.000f, 1.000f, 1.000f, 0.000f},
|
||||
{ 0.000f, 1.000f, -1.000f, 1.000f, 1.000f}
|
||||
};
|
||||
|
||||
float IndexedTriStripData[16][5] = {
|
||||
{ 0.000f, 1.000f, 1.000f, 0.000f, 0.000f},
|
||||
{ 0.707f, 0.707f, 1.000f, 0.250f, 0.000f},
|
||||
{ 1.000f, 0.000f, 1.000f, 0.500f, 0.000f},
|
||||
{ 0.707f, -0.707f, 1.000f, 0.750f, 0.000f},
|
||||
{ 0.000f, -1.000f, 1.000f, 1.000f, 0.000f},
|
||||
{-0.707f, -0.707f, 1.000f, 0.750f, 0.000f},
|
||||
{-1.000f, -0.000f, 1.000f, 0.500f, 0.000f},
|
||||
{-0.707f, 0.707f, 1.000f, 0.250f, 0.000f},
|
||||
|
||||
{ 0.000f, 1.000f, -1.000f, 0.000f, 1.000f},
|
||||
{ 0.707f, 0.707f, -1.000f, 0.250f, 1.000f},
|
||||
{ 1.000f, 0.000f, -1.000f, 0.500f, 1.000f},
|
||||
{ 0.707f, -0.707f, -1.000f, 0.750f, 1.000f},
|
||||
{ 0.000f, -1.000f, -1.000f, 1.000f, 1.000f},
|
||||
{-0.707f, -0.707f, -1.000f, 0.750f, 1.000f},
|
||||
{-1.000f, -0.000f, -1.000f, 0.500f, 1.000f},
|
||||
{-0.707f, 0.707f, -1.000f, 0.250f, 1.000f},
|
||||
};
|
||||
|
||||
rw::uint16 IndexedTriStripIndices[36] = {
|
||||
0, 8, 1, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15, 0, 8,
|
||||
8, 0, 9, 1, 10, 2, 11, 3, 12, 4, 13, 5, 14, 6, 15, 7, 8, 0
|
||||
};
|
||||
|
||||
rw::RWDEVICE::Im3DVertex TriStrip[36];
|
||||
rw::RWDEVICE::Im3DVertex IndexedTriStrip[16];
|
||||
|
||||
|
||||
void
|
||||
TriStripCreate(void)
|
||||
{
|
||||
for(int i = 0; i < 36; i++){
|
||||
TriStrip[i].setX(TriStripData[i][0]);
|
||||
TriStrip[i].setY(TriStripData[i][1]);
|
||||
TriStrip[i].setZ(TriStripData[i][2]);
|
||||
TriStrip[i].setU(TriStripData[i][3]);
|
||||
TriStrip[i].setV(TriStripData[i][4]);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TriStripSetColor(bool white)
|
||||
{
|
||||
rw::RGBA SolidColor1 = SolidRed;
|
||||
rw::RGBA SolidColor2 = SolidYellow;
|
||||
|
||||
if(white){
|
||||
SolidColor1 = SolidWhite;
|
||||
SolidColor2 = SolidWhite;
|
||||
}
|
||||
|
||||
for(int i = 0; i < 36; i += 2){
|
||||
TriStrip[i].setColor(SolidColor1.red, SolidColor1.green,
|
||||
SolidColor1.blue, SolidColor1.alpha);
|
||||
TriStrip[i+1].setColor(SolidColor2.red, SolidColor2.green,
|
||||
SolidColor2.blue, SolidColor2.alpha);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TriStripRender(rw::Matrix *transform, rw::uint32 transformFlags)
|
||||
{
|
||||
rw::im3d::Transform(TriStrip, 36, transform, transformFlags);
|
||||
rw::im3d::RenderPrimitive(rw::PRIMTYPETRISTRIP);
|
||||
rw::im3d::End();
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
IndexedTriStripCreate(void)
|
||||
{
|
||||
for(int i = 0; i < 16; i++){
|
||||
IndexedTriStrip[i].setX(IndexedTriStripData[i][0]);
|
||||
IndexedTriStrip[i].setY(IndexedTriStripData[i][1]);
|
||||
IndexedTriStrip[i].setZ(IndexedTriStripData[i][2]);
|
||||
IndexedTriStrip[i].setU(IndexedTriStripData[i][3]);
|
||||
IndexedTriStrip[i].setV(IndexedTriStripData[i][4]);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
IndexedTriStripSetColor(bool white)
|
||||
{
|
||||
int i;
|
||||
rw::RGBA SolidColor1 = SolidBlue;
|
||||
rw::RGBA SolidColor2 = SolidGreen;
|
||||
|
||||
if(white){
|
||||
SolidColor1 = SolidWhite;
|
||||
SolidColor2 = SolidWhite;
|
||||
}
|
||||
|
||||
for(i = 0; i < 8; i++)
|
||||
IndexedTriStrip[i].setColor(SolidColor1.red, SolidColor1.green,
|
||||
SolidColor1.blue, SolidColor1.alpha);
|
||||
for(; i < 16; i++)
|
||||
IndexedTriStrip[i].setColor(SolidColor2.red, SolidColor2.green,
|
||||
SolidColor2.blue, SolidColor2.alpha);
|
||||
}
|
||||
|
||||
void
|
||||
IndexedTriStripRender(rw::Matrix *transform, rw::uint32 transformFlags)
|
||||
{
|
||||
rw::im3d::Transform(IndexedTriStrip, 16, transform, transformFlags);
|
||||
rw::im3d::RenderIndexedPrimitive(rw::PRIMTYPETRISTRIP, IndexedTriStripIndices, 36);
|
||||
rw::im3d::End();
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue