Show Spline.cs syntax highlighted
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using Tao.Platform.Windows;
using Tao.OpenGl;
namespace New_Study_Project
{
public abstract class Spline : Object
{
/* Definitions of the Program */
public enum Typ{MoveAbleSpline, NoneMoveAbleSpline};
/* all stuff which is needed */
protected PointF Center;
protected PointF leftTop;
protected PointF rightTop;
protected PointF rightBut;
protected PointF leftBut;
protected Typ typ;
protected InterfaceGrid interfaceSP;
protected ControlPoint MOVINGControlPoint;
protected ControlPoint SAVEControlPoint;
protected PointF menuPos;
public PointF MOVINGSplinePoint;
protected List nodeList;
protected List nodeList_old;
protected List insideList;
protected List insideList_old;
protected float objScaleValue;
protected float fuzzyWidth;
protected float menuScale;
protected float menuArmScale;
protected float fadeMenu;
protected float menuAngle;
protected ArrayList InterfaceObjectList;
protected ArrayList IOSelectObjectList;
protected int waitCloseTime;
protected int[] IconTextures;
protected bool drawInterfaceObject;
protected bool drawMenus;
protected bool drawOpenMenu;
protected bool drawCloseMenu;
/* for logfile stuff */
//protected LogFile logfile;
protected int ObjectID;
/* other stuff */
private int GlList_Star;
/* End of Definitions of the Program */
/*******************************************************************/
/* End of the head of this Object - now the user code stuff begins */
/*******************************************************************/
public virtual void addInterfaceObjectToSpline(InterfaceObject obj)
{
if (!this.InterfaceObjectList.Contains(obj)) this.InterfaceObjectList.Add(obj);
}
public virtual void removeInterfaceObjectFromSpline(InterfaceObject obj)
{
this.InterfaceObjectList.Remove(obj);
}
public virtual void addIOSelectObjectToSpline(IOSelectObject IOSEL)
{
if (!this.IOSelectObjectList.Contains(IOSEL)) this.IOSelectObjectList.Add(IOSEL);
}
public virtual void removeIOSelectObjectFromSpline(IOSelectObject IOSEL)
{
this.IOSelectObjectList.Remove(IOSEL);
}
protected void addInterfaceObjectsToGrid()
{
foreach (InterfaceObject obj in this.InterfaceObjectList)
{
obj.translateEndInterfaceObject();
obj.addThisInterfaceObjectToGrid();
}
foreach (IOSelectObject IOSEL in this.IOSelectObjectList)
{
IOSEL.translateEndIOSelectObject();
IOSEL.addCompletly();
}
}
protected void removeInterfaceObjectsFromGrid()
{
foreach (InterfaceObject obj in this.InterfaceObjectList)
{
obj.removeThisInterfaceObjectFromGrid();
}
foreach (IOSelectObject IOSEL in this.IOSelectObjectList)
{
IOSEL.removeCompletly();
}
}
protected void translateInterfaceObjects(PointF translatePoint)
{
foreach (InterfaceObject obj in this.InterfaceObjectList)
{
obj.translateInterfaceObject(translatePoint);
}
foreach (IOSelectObject IOSEL in this.IOSelectObjectList)
{
IOSEL.translateIOSelectObject(translatePoint);
}
}
protected void testIOSelectObjectsInStorageArea()
{
int hits;
int[] pickmod;
int[] viewport;
PointF lastP;
viewport = new int[4];
Gl.glGetIntegerv(Gl.GL_VIEWPORT,viewport);
foreach (IOSelectObject IOSEL in this.IOSelectObjectList)
{
hits = 0;
pickmod = new int[20];
lastP = IOSEL.getLastMousePoint();
Gl.glSelectBuffer(20, pickmod);
Gl.glRenderMode(Gl.GL_SELECT);
Gl.glInitNames();
Gl.glMatrixMode(Gl.GL_PROJECTION);
Gl.glPushMatrix();
Gl.glLoadIdentity();
Glu.gluPickMatrix (lastP.X, viewport[3]-lastP.Y, 1.0, 1.0,viewport);
Glu.gluOrtho2D(0,(double) viewport[2], (double) viewport[3] , 0);
Gl.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT); // Clear Screen And Depth Buffer
Gl.glMatrixMode(Gl.GL_MODELVIEW);
Gl.glPushMatrix();
Gl.glLoadIdentity();
Gl.glPushName(969);
this.drawBackGround(true);
Gl.glPopName();
Gl.glPopMatrix();
Gl.glMatrixMode(Gl.GL_PROJECTION);
Gl.glPopMatrix();
Gl.glFlush();
hits = Gl.glRenderMode(Gl.GL_RENDER);
if ((hits == 0 && IOSEL.getStoredAreaPart() == 99) || (hits > 0 && IOSEL.getStoredAreaPart() == 99 && IOSEL.getStoredAreaPart() != pickmod[(hits-1)*5+4])) this.repositonIOSelectObjectToInside(IOSEL, lastP);
else if ((hits == 0 && IOSEL.getStoredAreaPart() == 66)) this.repositonIOSelectObjectToOutside(IOSEL, lastP);
else if ((hits > 0 && IOSEL.getStoredAreaPart() == 66) && pickmod[(hits-1)*5+4] == 99) this.repositonIOSelectObjectToInside(IOSEL, lastP);
}
}
protected void testInterfaceObjectsInStorageArea()
{
int hits;
int[] pickmod;
int[] viewport;
PointF lastP;
viewport = new int[4];
Gl.glGetIntegerv(Gl.GL_VIEWPORT,viewport);
foreach (InterfaceObject obj in this.InterfaceObjectList)
{
hits = 0;
pickmod = new int[20];
lastP = obj.getLastMousePoint();
Gl.glSelectBuffer(20, pickmod);
Gl.glRenderMode(Gl.GL_SELECT);
Gl.glInitNames();
Gl.glMatrixMode(Gl.GL_PROJECTION);
Gl.glPushMatrix();
Gl.glLoadIdentity();
Glu.gluPickMatrix (lastP.X, viewport[3]-lastP.Y, 1.0, 1.0,viewport);
Glu.gluOrtho2D(0,(double) viewport[2], (double) viewport[3] , 0);
Gl.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT); // Clear Screen And Depth Buffer
Gl.glMatrixMode(Gl.GL_MODELVIEW);
Gl.glPushMatrix();
Gl.glLoadIdentity();
Gl.glPushName(969);
this.drawBackGround(true);
Gl.glPopName();
Gl.glPopMatrix();
Gl.glMatrixMode(Gl.GL_PROJECTION);
Gl.glPopMatrix();
Gl.glFlush();
hits = Gl.glRenderMode(Gl.GL_RENDER);
if ((hits == 0 && obj.getStoredAreaPart() == 99) || (hits > 0 && obj.getStoredAreaPart() == 99 && obj.getStoredAreaPart() != pickmod[(hits-1)*5+4])) this.repositonInterfaceObjectToInside(obj, lastP);
else if ((hits == 0 && obj.getStoredAreaPart() == 66)) this.repositonInterfaceObjectToOutside(obj, lastP);
else if ((hits > 0 && obj.getStoredAreaPart() == 66) && pickmod[(hits-1)*5+4] == 99) this.repositonInterfaceObjectToInside(obj, lastP);
}
}
protected virtual void repositonIOSelectObjectToInside(IOSelectObject IOSEL, PointF lastP)
{
}
protected virtual void repositonIOSelectObjectToOutside(IOSelectObject IOSEL, PointF lastP)
{
}
protected virtual void repositonInterfaceObjectToInside(InterfaceObject obj, PointF lastP)
{
}
protected virtual void repositonInterfaceObjectToOutside(InterfaceObject obj, PointF lastP)
{
}
/*******************************************************************/
/* This are the drawing Functions which draw MoveSpline stuff */
/*******************************************************************/
protected void create_List_Star()
{
this.GlList_Star = Gl.glGenLists(1);
Gl.glNewList(this.GlList_Star, Gl.GL_COMPILE);
Gl.glScalef(4.0f, 4.0f, 4.0f);
Gl.glBegin(Gl.GL_POLYGON);
Gl.glColor4f(0.3f, 0.6f, 0.9f, 1.0f);
Gl.glVertex3f(0.0f, 0.0f, 0.0f);
Gl.glColor4f(0.0f, 0.0f, 0.0f, 0.0f);
Gl.glVertex3f(-4.0f, 0.0f, 0.0f);
Gl.glVertex3f(-1.0f, -1.0f, 0.0f);
Gl.glVertex3f(0.0f, -4.0f, 0.0f);
Gl.glColor4f(0.3f, 0.6f, 0.9f, 1.0f);
Gl.glVertex3f(0.0f, 0.0f, 0.0f);
Gl.glEnd();
Gl.glBegin(Gl.GL_POLYGON);
Gl.glColor4f(0.3f, 0.6f, 0.9f, 1.0f);
Gl.glVertex3f(0.0f, 0.0f, 0.0f);
Gl.glColor4f(0.0f, 0.0f, 0.0f, 0.0f);
Gl.glVertex3f(0.0f, -4.0f, 0.0f);
Gl.glVertex3f(1.0f, -1.0f, 0.0f);
Gl.glVertex3f(4.0f, 0.0f, 0.0f);
Gl.glColor4f(0.3f, 0.6f, 0.9f, 1.0f);
Gl.glVertex3f(0.0f, 0.0f, 0.0f);
Gl.glEnd();
Gl.glBegin(Gl.GL_POLYGON);
Gl.glColor4f(0.3f, 0.6f, 0.9f, 1.0f);
Gl.glVertex3f(0.0f, 0.0f, 0.0f);
Gl.glColor4f(0.0f, 0.0f, 0.0f, 0.0f);
Gl.glVertex3f(4.0f, 0.0f, 0.0f);
Gl.glVertex3f(1.0f, 1.0f, 0.0f);
Gl.glVertex3f(0.0f, 4.0f, 0.0f);
Gl.glColor4f(0.3f, 0.6f, 0.9f, 1.0f);
Gl.glVertex3f(0.0f, 0.0f, 0.0f);
Gl.glEnd();
Gl.glBegin(Gl.GL_POLYGON);
Gl.glColor4f(0.3f, 0.6f, 0.9f, 1.0f);
Gl.glVertex3f(0.0f, 0.0f, 0.0f);
Gl.glColor4f(0.0f, 0.0f, 0.0f, 0.0f);
Gl.glVertex3f(0.0f, 4.0f, 0.0f);
Gl.glVertex3f(-1.0f, 1.0f, 0.0f);
Gl.glVertex3f(-4.0f, 0.0f, 0.0f);
Gl.glColor4f(0.3f, 0.6f, 0.9f, 1.0f);
Gl.glVertex3f(0.0f, 0.0f, 0.0f);
Gl.glEnd();
Gl.glEndList();
}
protected void drawControlPoints()
{
Gl.glPushMatrix();
Gl.glCallList(this.GlList_Star);
Gl.glPopMatrix();
}
public virtual void drawSpline(bool moveSP)
{
}
public virtual void drawBackGround(bool moveSP)
{
}
/*******************************************************************/
/* Mouse Events */
/*******************************************************************/
public virtual void mouseDOWN(ControlPoint MOVINGCP, int inputID)
{
}
public virtual void mouseMOVE(Point MOVEPoint)
{
}
public virtual void mouseUP(Point UPPoint)
{
}
public virtual void clickedStorageButton(Point CLICKEDPoint, ObjectButton getStoreButton, int inputID)
{
}
public virtual void changeBorderSize(int valueSize)
{
}
public virtual void changeObjectSize(float objSize)
{
}
/*******************************************************************/
/* some function for returning values */
/*******************************************************************/
public float getObjectScaleValue()
{
return this.objScaleValue;
}
public Typ getTyp()
{
return this.typ;
}
public int getObjectID()
{
return this.ObjectID;
}
public PointF getCenter()
{
return Center;
}
public PointF getLeftTop()
{
return leftTop;
}
public PointF getRightTop()
{
return rightTop;
}
public PointF getRightBut()
{
return rightBut;
}
public PointF getLeftBut()
{
return leftBut;
}
/*******************************************************************/
/* ----------------------------------------------------------- */
/*******************************************************************/
}
}
See more files for this project here