Mercurial > defical
diff defical-c/src/graphmagic.h @ 0:ebed2bd0d300
Initial import from svn. History be damned.
author | Edho P. Arief <me@myconan.net> |
---|---|
date | Fri, 02 Apr 2010 23:11:57 +0700 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/defical-c/src/graphmagic.h Fri Apr 02 23:11:57 2010 +0700 @@ -0,0 +1,43 @@ +#include "includes.h" +using namespace std; + +class semtd; + +class semtd +{ +private: + //graphType: 0=path, 1=cycle, 2=completebipartite, 3=wheel, 4=fan, 5=doublefan + //vector< vector<bool> > theGraph; + bool theGraph[1000][1000]; + bool isQuickMode; + bool isSureFail; + vector< vector<uint32_t> > edgeLabels; + vector<uint32_t> edgeLabelsUsed; + uint32_t edgeLabelAbsoluteMax,edgeLabelMin,edgeLabelMax; + double scoreCache; + inline uint32_t edgeLabelRange(); + void setEdgeLabels(uint32_t verPos); + void removeEdgeLabels(uint32_t verPos); + void refreshEdgeLabelsMinMax(); + void resetLabels(uint32_t mode); + void draw(uint32_t drawType,uint32_t start,uint32_t end); + void draw(uint32_t drawType,uint32_t start,uint32_t end,uint32_t extra); + inline void connectVertices(uint32_t a,uint32_t b); + bool isValidRange(uint32_t min,uint32_t max); +public: + uint32_t numDef,numEdges,graphType; + semtd(); + semtd(uint32_t graphType, uint32_t numVer, uint32_t numDef); + uint32_t NumVer,TotalVer; + vector<uint32_t> VerLabels; + string Print(uint32_t withDual); + void FixLabel(); + void SwapLabel(); + bool IsSemt(); + double SemtScore(); + void SetVerLabel(uint32_t verPos,uint32_t verLabel); + void RemoveVerLabel(uint32_t verPos); + bool IsValidToLabel(uint32_t verPos,uint32_t verLabel); + uint32_t MinDef(); +}; +