fix fatal error of eLink/pLink generate algo
This commit is contained in:
parent
849e62886a
commit
6eee3e8f6d
|
@ -15,6 +15,7 @@ void dbDataStructHelper::init(CKParameterManager* paramManager) {
|
||||||
_db_pLink = new db_pLink();
|
_db_pLink = new db_pLink();
|
||||||
_db_pLocalData = new db_pLocalData();
|
_db_pLocalData = new db_pLocalData();
|
||||||
_db_pOper = new db_pOper();
|
_db_pOper = new db_pOper();
|
||||||
|
_db_eLink = new db_eLink();
|
||||||
_parameterManager = paramManager;
|
_parameterManager = paramManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,6 +32,7 @@ void dbDataStructHelper::dispose() {
|
||||||
delete _db_pLink;
|
delete _db_pLink;
|
||||||
delete _db_pLocal;
|
delete _db_pLocal;
|
||||||
delete _db_pOper;
|
delete _db_pOper;
|
||||||
|
delete _db_eLink;
|
||||||
_parameterManager = NULL;
|
_parameterManager = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -101,6 +103,10 @@ void database::open(const char* file) {
|
||||||
"CREATE TABLE pOper([thisobj] INTEGER, [op] TEXT, [op_guid] TEXT, [belong_to] INTEGER);",
|
"CREATE TABLE pOper([thisobj] INTEGER, [op] TEXT, [op_guid] TEXT, [belong_to] INTEGER);",
|
||||||
NULL, NULL, &errmsg);
|
NULL, NULL, &errmsg);
|
||||||
if (result != SQLITE_OK) goto fail;
|
if (result != SQLITE_OK) goto fail;
|
||||||
|
result = sqlite3_exec(db,
|
||||||
|
"CREATE TABLE eLink([export_obj] INTEGER, [internal_obj] INTEGER, [is_in] INTEGER, [index] INTEGER, [belong_to] INTEGER);",
|
||||||
|
NULL, NULL, &errmsg);
|
||||||
|
if (result != SQLITE_OK) goto fail;
|
||||||
|
|
||||||
|
|
||||||
//start job
|
//start job
|
||||||
|
@ -317,5 +323,17 @@ void database::write_pOper(db_pOper* data) {
|
||||||
sqlite3_exec(db, commandStr, NULL, NULL, &errmsg);
|
sqlite3_exec(db, commandStr, NULL, NULL, &errmsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void database::write_eLink(db_eLink* data) {
|
||||||
|
if (db == NULL) return;
|
||||||
|
|
||||||
|
sprintf(commandStr, "INSERT INTO eLink VALUES (%d, %d, %d, %d, %d);",
|
||||||
|
data->export_obj,
|
||||||
|
data->internal_obj,
|
||||||
|
data->is_in,
|
||||||
|
data->index,
|
||||||
|
data->belong_to);
|
||||||
|
|
||||||
|
sqlite3_exec(db, commandStr, NULL, NULL, &errmsg);
|
||||||
|
}
|
||||||
|
|
||||||
#pragma endregion
|
#pragma endregion
|
||||||
|
|
|
@ -131,6 +131,14 @@ typedef struct {
|
||||||
EXPAND_CK_ID belong_to;
|
EXPAND_CK_ID belong_to;
|
||||||
}db_pOper;
|
}db_pOper;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
EXPAND_CK_ID export_obj;
|
||||||
|
EXPAND_CK_ID internal_obj;
|
||||||
|
BOOL is_in;
|
||||||
|
int index;
|
||||||
|
EXPAND_CK_ID belong_to;
|
||||||
|
}db_eLink;
|
||||||
|
|
||||||
#pragma endregion
|
#pragma endregion
|
||||||
|
|
||||||
class dbDataStructHelper {
|
class dbDataStructHelper {
|
||||||
|
@ -151,6 +159,7 @@ class dbDataStructHelper {
|
||||||
db_pLink* _db_pLink;
|
db_pLink* _db_pLink;
|
||||||
db_pLocalData* _db_pLocalData;
|
db_pLocalData* _db_pLocalData;
|
||||||
db_pOper* _db_pOper;
|
db_pOper* _db_pOper;
|
||||||
|
db_eLink* _db_eLink;
|
||||||
};
|
};
|
||||||
|
|
||||||
class database {
|
class database {
|
||||||
|
@ -170,6 +179,7 @@ class database {
|
||||||
void write_pLink(db_pLink* data);
|
void write_pLink(db_pLink* data);
|
||||||
void write_pLocalData(db_pLocalData* data);
|
void write_pLocalData(db_pLocalData* data);
|
||||||
void write_pOper(db_pOper* data);
|
void write_pOper(db_pOper* data);
|
||||||
|
void write_eLink(db_eLink* data);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
sqlite3* db;
|
sqlite3* db;
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
#pragma region inline func
|
#pragma region inline func
|
||||||
|
|
||||||
inline void generate_pLink_in_pIn(CKParameterIn* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents, EXPAND_CK_ID grandparents, int index, BOOL executedFromBB, BOOL isTarget) {
|
inline void generate_pLink_in_pIn(CKContext* ctx, CKParameterIn* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents, EXPAND_CK_ID grandparents, int index, BOOL executedFromBB, BOOL isTarget) {
|
||||||
//WARNING: i only choose one between [DirectSource] and [SharedSource] bucause i don't find any pIn both have these two field
|
//WARNING: i only choose one between [DirectSource] and [SharedSource] bucause i don't find any pIn both have these two field
|
||||||
CKParameter* directSource = NULL;
|
CKParameter* directSource = NULL;
|
||||||
CKObject* ds_Owner = NULL;
|
CKObject* ds_Owner = NULL;
|
||||||
|
@ -71,7 +71,7 @@ inline void generate_pLink_in_pIn(CKParameterIn* cache, database* db, dbDataStru
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void proc_pTarget(CKParameterIn* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents, EXPAND_CK_ID grandparents) {
|
inline void proc_pTarget(CKContext* ctx, CKParameterIn* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents, EXPAND_CK_ID grandparents) {
|
||||||
helper->_db_pTarget->thisobj = cache->GetID();
|
helper->_db_pTarget->thisobj = cache->GetID();
|
||||||
strcpy(helper->_db_pTarget->name, cache->GetName());
|
strcpy(helper->_db_pTarget->name, cache->GetName());
|
||||||
strcpy(helper->_db_pTarget->type, helper->_parameterManager->ParameterTypeToName(cache->GetType()));
|
strcpy(helper->_db_pTarget->type, helper->_parameterManager->ParameterTypeToName(cache->GetType()));
|
||||||
|
@ -84,10 +84,10 @@ inline void proc_pTarget(CKParameterIn* cache, database* db, dbDataStructHelper*
|
||||||
db->write_pTarget(helper->_db_pTarget);
|
db->write_pTarget(helper->_db_pTarget);
|
||||||
|
|
||||||
//=========try generate pLink
|
//=========try generate pLink
|
||||||
generate_pLink_in_pIn(cache, db, helper, parents, grandparents, -1, TRUE, TRUE);
|
generate_pLink_in_pIn(ctx, cache, db, helper, parents, grandparents, -1, TRUE, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void proc_pIn(CKParameterIn* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents, EXPAND_CK_ID grandparents, int index, BOOL executedFromBB) {
|
inline void proc_pIn(CKContext* ctx, CKParameterIn* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents, EXPAND_CK_ID grandparents, int index, BOOL executedFromBB) {
|
||||||
helper->_db_pIn->thisobj = cache->GetID();
|
helper->_db_pIn->thisobj = cache->GetID();
|
||||||
helper->_db_pIn->index = index;
|
helper->_db_pIn->index = index;
|
||||||
strcpy(helper->_db_pIn->name, cache->GetName());
|
strcpy(helper->_db_pIn->name, cache->GetName());
|
||||||
|
@ -102,12 +102,24 @@ inline void proc_pIn(CKParameterIn* cache, database* db, dbDataStructHelper* hel
|
||||||
|
|
||||||
db->write_pIn(helper->_db_pIn);
|
db->write_pIn(helper->_db_pIn);
|
||||||
|
|
||||||
//=========try generate pLink
|
//judge whether expoer parameter and write database
|
||||||
generate_pLink_in_pIn(cache, db, helper, parents, grandparents, index, executedFromBB, FALSE);
|
if (((CKBehavior*)ctx->GetObjectA(grandparents))->GetInputParameterPosition(cache) != -1) {
|
||||||
|
helper->_db_eLink->export_obj = cache->GetID();
|
||||||
|
helper->_db_eLink->internal_obj = parents;
|
||||||
|
helper->_db_eLink->is_in = TRUE;
|
||||||
|
helper->_db_eLink->index = index;
|
||||||
|
helper->_db_eLink->belong_to = grandparents;
|
||||||
|
|
||||||
|
db->write_eLink(helper->_db_eLink);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//=========try generate pLink
|
||||||
|
generate_pLink_in_pIn(ctx, cache, db, helper, parents, grandparents, index, executedFromBB, FALSE);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void proc_pOut(CKParameterOut* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents, EXPAND_CK_ID grandparents, int index, BOOL executedFromBB) {
|
inline void proc_pOut(CKContext* ctx, CKParameterOut* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents, EXPAND_CK_ID grandparents, int index, BOOL executedFromBB) {
|
||||||
helper->_db_pOut->thisobj = cache->GetID();
|
helper->_db_pOut->thisobj = cache->GetID();
|
||||||
helper->_db_pOut->index = index;
|
helper->_db_pOut->index = index;
|
||||||
strcpy(helper->_db_pOut->name, cache->GetName());
|
strcpy(helper->_db_pOut->name, cache->GetName());
|
||||||
|
@ -120,6 +132,18 @@ inline void proc_pOut(CKParameterOut* cache, database* db, dbDataStructHelper* h
|
||||||
|
|
||||||
db->write_pOut(helper->_db_pOut);
|
db->write_pOut(helper->_db_pOut);
|
||||||
|
|
||||||
|
//judge whether expoer parameter and write database
|
||||||
|
if (((CKBehavior*)ctx->GetObjectA(grandparents))->GetOutputParameterPosition(cache) != -1) {
|
||||||
|
helper->_db_eLink->export_obj = cache->GetID();
|
||||||
|
helper->_db_eLink->internal_obj = parents;
|
||||||
|
helper->_db_eLink->is_in = FALSE;
|
||||||
|
helper->_db_eLink->index = index;
|
||||||
|
helper->_db_eLink->belong_to = grandparents;
|
||||||
|
|
||||||
|
db->write_eLink(helper->_db_eLink);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
//=========try generate pLink
|
//=========try generate pLink
|
||||||
CKParameter* cache_Dest = NULL;
|
CKParameter* cache_Dest = NULL;
|
||||||
CKObject* cache_DestOwner = NULL;
|
CKObject* cache_DestOwner = NULL;
|
||||||
|
@ -212,7 +236,7 @@ inline void proc_pLocal(CKParameterLocal* cache, database* db, dbDataStructHelpe
|
||||||
IteratepLocalData(cache, db, helper, cache->GetID());
|
IteratepLocalData(cache, db, helper, cache->GetID());
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void proc_pOper(CKParameterOperation* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents) {
|
inline void proc_pOper(CKContext* ctx, CKParameterOperation* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents) {
|
||||||
helper->_db_pOper->thisobj = cache->GetID();
|
helper->_db_pOper->thisobj = cache->GetID();
|
||||||
strcpy(helper->_db_pOper->op, helper->_parameterManager->OperationGuidToName(cache->GetOperationGuid()));
|
strcpy(helper->_db_pOper->op, helper->_parameterManager->OperationGuidToName(cache->GetOperationGuid()));
|
||||||
helper->_db_pOper->op_guid[0] = cache->GetOperationGuid().d1;
|
helper->_db_pOper->op_guid[0] = cache->GetOperationGuid().d1;
|
||||||
|
@ -222,9 +246,9 @@ inline void proc_pOper(CKParameterOperation* cache, database* db, dbDataStructHe
|
||||||
db->write_pOper(helper->_db_pOper);
|
db->write_pOper(helper->_db_pOper);
|
||||||
|
|
||||||
//export 2 input param and 1 output param
|
//export 2 input param and 1 output param
|
||||||
proc_pIn(cache->GetInParameter1(), db, helper, cache->GetID(), parents, 0, FALSE);
|
proc_pIn(ctx, cache->GetInParameter1(), db, helper, cache->GetID(), parents, 0, FALSE);
|
||||||
proc_pIn(cache->GetInParameter2(), db, helper, cache->GetID(), parents, 1, FALSE);
|
proc_pIn(ctx, cache->GetInParameter2(), db, helper, cache->GetID(), parents, 1, FALSE);
|
||||||
proc_pOut(cache->GetOutParameter(), db, helper, cache->GetID(), parents, 0, FALSE);
|
proc_pOut(ctx, cache->GetOutParameter(), db, helper, cache->GetID(), parents, 0, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -273,12 +297,12 @@ void IterateScript(CKContext* ctx, database* db, dbDataStructHelper* helper) {
|
||||||
db->write_CKScript(helper->_dbCKScript);
|
db->write_CKScript(helper->_dbCKScript);
|
||||||
|
|
||||||
//iterate script
|
//iterate script
|
||||||
IterateBehavior(beh, db, helper, -1);
|
IterateBehavior(ctx, beh, db, helper, -1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void IterateBehavior(CKBehavior* bhv, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents) {
|
void IterateBehavior(CKContext* ctx, CKBehavior* bhv, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents) {
|
||||||
//write self data
|
//write self data
|
||||||
helper->_dbCKBehavior->thisobj = bhv->GetID();
|
helper->_dbCKBehavior->thisobj = bhv->GetID();
|
||||||
strcpy(helper->_dbCKBehavior->name, bhv->GetName());
|
strcpy(helper->_dbCKBehavior->name, bhv->GetName());
|
||||||
|
@ -300,15 +324,15 @@ void IterateBehavior(CKBehavior* bhv, database* db, dbDataStructHelper* helper,
|
||||||
|
|
||||||
//write target
|
//write target
|
||||||
if (bhv->IsUsingTarget())
|
if (bhv->IsUsingTarget())
|
||||||
proc_pTarget(bhv->GetTargetParameter(), db, helper, bhv->GetID(), parents);
|
proc_pTarget(ctx, bhv->GetTargetParameter(), db, helper, bhv->GetID(), parents);
|
||||||
|
|
||||||
int count = 0, i = 0;
|
int count = 0, i = 0;
|
||||||
//pIn
|
//pIn
|
||||||
for (i = 0, count = bhv->GetInputParameterCount(); i < count; i++)
|
for (i = 0, count = bhv->GetInputParameterCount(); i < count; i++)
|
||||||
proc_pIn(bhv->GetInputParameter(i), db, helper, bhv->GetID(), parents, i, TRUE);
|
proc_pIn(ctx, bhv->GetInputParameter(i), db, helper, bhv->GetID(), parents, i, TRUE);
|
||||||
//pOut
|
//pOut
|
||||||
for (i = 0, count = bhv->GetOutputParameterCount(); i < count; i++)
|
for (i = 0, count = bhv->GetOutputParameterCount(); i < count; i++)
|
||||||
proc_pOut(bhv->GetOutputParameter(i), db, helper, bhv->GetID(), parents, i, TRUE);
|
proc_pOut(ctx, bhv->GetOutputParameter(i), db, helper, bhv->GetID(), parents, i, TRUE);
|
||||||
//bIn
|
//bIn
|
||||||
for (i = 0, count = bhv->GetInputCount(); i < count; i++)
|
for (i = 0, count = bhv->GetInputCount(); i < count; i++)
|
||||||
proc_bIn(bhv->GetInput(i), db, helper, bhv->GetID(), i);
|
proc_bIn(bhv->GetInput(i), db, helper, bhv->GetID(), i);
|
||||||
|
@ -322,13 +346,13 @@ void IterateBehavior(CKBehavior* bhv, database* db, dbDataStructHelper* helper,
|
||||||
for (i = 0, count = bhv->GetLocalParameterCount(); i < count; i++)
|
for (i = 0, count = bhv->GetLocalParameterCount(); i < count; i++)
|
||||||
proc_pLocal(bhv->GetLocalParameter(i), db, helper, bhv->GetID(),
|
proc_pLocal(bhv->GetLocalParameter(i), db, helper, bhv->GetID(),
|
||||||
bhv->IsLocalParameterSetting(i));
|
bhv->IsLocalParameterSetting(i));
|
||||||
//bOper
|
//pOper
|
||||||
for (i = 0, count = bhv->GetParameterOperationCount(); i < count; i++)
|
for (i = 0, count = bhv->GetParameterOperationCount(); i < count; i++)
|
||||||
proc_pOper(bhv->GetParameterOperation(i), db, helper, bhv->GetID());
|
proc_pOper(ctx, bhv->GetParameterOperation(i), db, helper, bhv->GetID());
|
||||||
|
|
||||||
//iterate sub bb
|
//iterate sub bb
|
||||||
for (i = 0, count = bhv->GetSubBehaviorCount(); i < count; i++)
|
for (i = 0, count = bhv->GetSubBehaviorCount(); i < count; i++)
|
||||||
IterateBehavior(bhv->GetSubBehavior(i), db, helper, bhv->GetID());
|
IterateBehavior(ctx, bhv->GetSubBehavior(i), db, helper, bhv->GetID());
|
||||||
}
|
}
|
||||||
|
|
||||||
void IteratepLocalData(CKParameterLocal* p, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents) {
|
void IteratepLocalData(CKParameterLocal* p, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents) {
|
||||||
|
|
|
@ -4,21 +4,21 @@
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
#include "database.h"
|
#include "database.h"
|
||||||
|
|
||||||
inline void generate_pLink_in_pIn(CKParameterIn* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents, EXPAND_CK_ID grandparents, int index, BOOL executedFromBB, BOOL isTarget);
|
inline void generate_pLink_in_pIn(CKContext* ctx, CKParameterIn* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents, EXPAND_CK_ID grandparents, int index, BOOL executedFromBB, BOOL isTarget);
|
||||||
inline void proc_pTarget(CKParameterIn* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents, EXPAND_CK_ID grandparents);
|
inline void proc_pTarget(CKContext* ctx, CKParameterIn* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents, EXPAND_CK_ID grandparents);
|
||||||
inline void proc_pIn(CKParameterIn* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents, EXPAND_CK_ID grandparents, int index, BOOL executedFromBB);
|
inline void proc_pIn(CKContext* ctx, CKParameterIn* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents, EXPAND_CK_ID grandparents, int index, BOOL executedFromBB);
|
||||||
inline void proc_pOut(CKParameterOut* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents, EXPAND_CK_ID grandparents, int index, BOOL executedFromBB);
|
inline void proc_pOut(CKContext* ctx, CKParameterOut* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents, EXPAND_CK_ID grandparents, int index, BOOL executedFromBB);
|
||||||
inline void proc_bIn(CKBehaviorIO* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents, int index);
|
inline void proc_bIn(CKBehaviorIO* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents, int index);
|
||||||
inline void proc_bOut(CKBehaviorIO* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents, int index);
|
inline void proc_bOut(CKBehaviorIO* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents, int index);
|
||||||
inline void proc_bLink(CKBehaviorLink* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents);
|
inline void proc_bLink(CKBehaviorLink* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents);
|
||||||
inline void proc_pLocal(CKParameterLocal* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents, BOOL is_setting);
|
inline void proc_pLocal(CKParameterLocal* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents, BOOL is_setting);
|
||||||
inline void proc_pOper(CKParameterOperation* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents);
|
inline void proc_pOper(CKContext* ctx, CKParameterOperation* cache, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents);
|
||||||
|
|
||||||
inline void helper_pLocalDataExport(const char* field, long data, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents);
|
inline void helper_pLocalDataExport(const char* field, long data, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents);
|
||||||
inline void helper_pLocalDataExport(const char* field, float data, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents);
|
inline void helper_pLocalDataExport(const char* field, float data, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents);
|
||||||
inline void helper_pLocalDataExport(const char* field, const char* data, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents);
|
inline void helper_pLocalDataExport(const char* field, const char* data, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents);
|
||||||
|
|
||||||
void IterateBehavior(CKBehavior* bhv, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents);
|
void IterateBehavior(CKContext* ctx, CKBehavior* bhv, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents);
|
||||||
void IterateScript(CKContext* ctx, database* db, dbDataStructHelper* helper);
|
void IterateScript(CKContext* ctx, database* db, dbDataStructHelper* helper);
|
||||||
void IteratepLocalData(CKParameterLocal* pl, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents);
|
void IteratepLocalData(CKParameterLocal* pl, database* db, dbDataStructHelper* helper, EXPAND_CK_ID parents);
|
||||||
|
|
||||||
|
|
|
@ -399,9 +399,6 @@ def buildCell(exDb, deDb, target, currentGraphBlockCell):
|
||||||
createdShortcut = set()
|
createdShortcut = set()
|
||||||
exCur.execute("SELECT * FROM pLink WHERE [belong_to] == ?", (target,))
|
exCur.execute("SELECT * FROM pLink WHERE [belong_to] == ?", (target,))
|
||||||
for i in exCur.fetchall():
|
for i in exCur.fetchall():
|
||||||
# check export pIO.
|
|
||||||
if (((i[2] != target) and (i[0] in graphPIO)) or ((i[6] != target) and (i[1] in graphPIO))):
|
|
||||||
continue
|
|
||||||
|
|
||||||
# analyse 5 chancee one by one
|
# analyse 5 chancee one by one
|
||||||
if (i[7] == dcv.dbPLinkInputOutputType.PTARGET or i[7] == dcv.dbPLinkInputOutputType.PIN):
|
if (i[7] == dcv.dbPLinkInputOutputType.PTARGET or i[7] == dcv.dbPLinkInputOutputType.PIN):
|
||||||
|
@ -570,23 +567,6 @@ def buildLink(exDb, deDb, target, currentGraphBlockCell, graphPIO):
|
||||||
# !! the same if framework in cell generator function !! SHARED
|
# !! the same if framework in cell generator function !! SHARED
|
||||||
exCur.execute("SELECT * FROM pLink WHERE [belong_to] == ?", (target,))
|
exCur.execute("SELECT * FROM pLink WHERE [belong_to] == ?", (target,))
|
||||||
for i in exCur.fetchall():
|
for i in exCur.fetchall():
|
||||||
# check export pIO.
|
|
||||||
if (i[2] != target) and (i[0] in graphPIO):
|
|
||||||
# fuck export param, create a export link. in this if, i[0] is a pOut and was plugged into graph. it is start point
|
|
||||||
(x1, y1) = computLinkPTerminal(i[0], 0, -1, currentGraphBlockCell)
|
|
||||||
(x2, y2) = computLinkPTerminal(i[2], 1, i[5], currentGraphBlockCell)
|
|
||||||
deCur.execute("INSERT INTO link VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);",
|
|
||||||
(target, -2, i[0], i[0], target, i[2], 0, 1, -1, i[5], x1, y1, x2, y2))
|
|
||||||
continue
|
|
||||||
|
|
||||||
if (i[6] != target) and (i[1] in graphPIO):
|
|
||||||
# fuck export param, create a export link. in this if, i[1] is a pIn/pTarget and was plugged into graph. it is end point
|
|
||||||
(x1, y1) = computLinkPTerminal(i[1], 0, -1, currentGraphBlockCell)
|
|
||||||
(x2, y2) = computLinkPTerminal(i[6], 0, i[9], currentGraphBlockCell)
|
|
||||||
deCur.execute("INSERT INTO link VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);",
|
|
||||||
(target, -2, i[1], i[1], target, i[6], 0, 0, -1, i[9], x1, y1, x2, y2))
|
|
||||||
continue
|
|
||||||
|
|
||||||
# analyse 5 chancee one by one
|
# analyse 5 chancee one by one
|
||||||
if (i[7] == dcv.dbPLinkInputOutputType.PTARGET or i[7] == dcv.dbPLinkInputOutputType.PIN):
|
if (i[7] == dcv.dbPLinkInputOutputType.PTARGET or i[7] == dcv.dbPLinkInputOutputType.PIN):
|
||||||
if (i[3] == dcv.dbPLinkInputOutputType.PLOCAL):
|
if (i[3] == dcv.dbPLinkInputOutputType.PLOCAL):
|
||||||
|
@ -629,6 +609,13 @@ def buildLink(exDb, deDb, target, currentGraphBlockCell, graphPIO):
|
||||||
deCur.execute("INSERT INTO link VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);",
|
deCur.execute("INSERT INTO link VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);",
|
||||||
(target, -1, i[0], i[1], i[2], i[6], 1, 1, i[5], i[9], x1, y1, x2, y2))
|
(target, -1, i[0], i[1], i[2], i[6], 1, 1, i[5], i[9], x1, y1, x2, y2))
|
||||||
|
|
||||||
|
# eLink
|
||||||
|
exCur.execute("SELECT * FROM eLink WHERE [belong_to] == ?", (target,))
|
||||||
|
for i in exCur.fetchall():
|
||||||
|
(x1, y1) = computLinkPTerminal(i[0], 0, -1, currentGraphBlockCell)
|
||||||
|
(x2, y2) = computLinkPTerminal(i[1], 0 if i[2] == 1 else 1, i[3], currentGraphBlockCell)
|
||||||
|
deCur.execute("INSERT INTO link VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);",
|
||||||
|
(target, -2, i[0], i[0], target, i[1], 0, 0 if i[2] == 1 else 1, -1, i[3], x1, y1, x2, y2))
|
||||||
|
|
||||||
def computLinkBTerminal(obj, xtype, index, currentGraphBlockCell):
|
def computLinkBTerminal(obj, xtype, index, currentGraphBlockCell):
|
||||||
# index = -1 mean no offset, it will connect to graph io
|
# index = -1 mean no offset, it will connect to graph io
|
||||||
|
|
Loading…
Reference in New Issue
Block a user