[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11067] trunk/blender/source/blender/ blenkernel: - Added several new callback functions for geometry node.
Jiri Hnidek
jiri.hnidek at tul.cz
Tue Jun 26 14:19:19 CEST 2007
Revision: 11067
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11067
Author: jiri
Date: 2007-06-26 14:19:19 +0200 (Tue, 26 Jun 2007)
Log Message:
-----------
- Added several new callback functions for geometry node.
- Refactored geometry layers.
- Removed several unused debug prints.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/BKE_verse.h
trunk/blender/source/blender/blenkernel/intern/verse_geometry_node.c
Modified: trunk/blender/source/blender/blenkernel/BKE_verse.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_verse.h 2007-06-26 12:05:17 UTC (rev 11066)
+++ trunk/blender/source/blender/blenkernel/BKE_verse.h 2007-06-26 12:19:19 UTC (rev 11067)
@@ -46,21 +46,12 @@
#define VEDHASH(a, b) ((a<b ? a : b) % VEDHASHSIZE)
/*
- * virtual data type (used only for retype)
- */
-typedef struct verse_parent {
- struct verse_parent *next, *prev;
- VLayerID layer_id;
- uint32 id;
-} verse_parent;
-
-/*
* verse data: 4 float value
*/
typedef struct quat_real32_item {
struct quat_real32_item *next, *prev;
- VLayerID layer_id;
- void *parent;
+ struct VLayer *vlayer; /* pointer at VerseLayer */
+ uint32 id; /* id of item */
real32 value[4];
} quat_real32_item;
@@ -69,8 +60,8 @@
*/
typedef struct quat_uint32_item {
struct quat_uint32_item *next, *prev;
- VLayerID layer_id;
- void *parent;
+ struct VLayer *vlayer; /* pointer at VerseLayer */
+ uint32 id; /* id of item */
uint32 value[4];
} quat_uint32_item;
@@ -79,8 +70,8 @@
*/
typedef struct vec_real32_item {
struct vec_real32_item *next, *prev;
- VLayerID layer_id;
- void *parent;
+ struct VLayer *vlayer; /* pointer at VerseLayer */
+ uint32 id; /* id of item */
real32 value[3];
} vec_real32_item;
@@ -89,8 +80,8 @@
*/
typedef struct real32_item {
struct real32_item *next, *prev;
- VLayerID layer_id;
- void *parent;
+ struct VLayer *vlayer; /* pointer at VerseLayer */
+ uint32 id; /* id of item */
real32 value;
} real32_item;
@@ -99,8 +90,8 @@
*/
typedef struct uint32_item {
struct uint32_item *next, *prev;
- VLayerID layer_id;
- void *parent;
+ struct VLayer *vlayer; /* pointer at VerseLayer */
+ uint32 id; /* id of item */
uint32 value;
} uint32_item;
@@ -109,8 +100,8 @@
*/
typedef struct uint8_item {
struct uint8_item *next, *prev;
- VLayerID layer_id;
- void *parent;
+ struct VLayer *vlayer; /* pointer at VerseLayer */
+ uint32 id; /* id of item */
uint8 value;
} uint8_item;
Modified: trunk/blender/source/blender/blenkernel/intern/verse_geometry_node.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/verse_geometry_node.c 2007-06-26 12:05:17 UTC (rev 11066)
+++ trunk/blender/source/blender/blenkernel/intern/verse_geometry_node.c 2007-06-26 12:19:19 UTC (rev 11067)
@@ -141,6 +141,11 @@
*/
void add_item_to_send_queue(ListBase *lb, void *item, short type)
{
+ struct VNode *vnode;
+ struct VLayer *vlayer;
+ struct VerseVert *vvert;
+ struct VerseFace *vface;
+
/* this prevent from adding duplicated faces */
if(type==VERSE_FACE) {
struct Link *link = (Link*)lb->first;
@@ -188,35 +193,59 @@
send_verse_taggroup((VTagGroup*)item);
break;
case VERSE_VERT_UINT32: /* parent item has to exist */
- if( ((verse_parent*)((uint32_item*)item)->parent)->id != -1)
+ vnode = (((uint32_item*)item)->vlayer)->vnode;
+ vlayer = (VLayer*)BLI_dlist_find_link(&(((VGeomData*)vnode->data)->layers), 0 );
+ vvert = (VerseVert*)BLI_dlist_find_link(&(vlayer->dl), ((uint32_item*)item)->id );
+ if(vvert != NULL)
send_verse_vert_uint32((uint32_item*)item, type);
break;
case VERSE_VERT_REAL32: /* parent item has to exist */
- if( ((verse_parent*)((real32_item*)item)->parent)->id != -1)
+ vnode = (((real32_item*)item)->vlayer)->vnode;
+ vlayer = (VLayer*)BLI_dlist_find_link(&(((VGeomData*)vnode->data)->layers), 0 );
+ vvert = (VerseVert*)BLI_dlist_find_link(&(vlayer->dl), ((real32_item*)item)->id );
+ if( vvert != NULL)
send_verse_vert_real32((real32_item*)item, type);
break;
case VERSE_VERT_VEC_REAL32: /* parent item has to exist */
- if( ((verse_parent*)((vec_real32_item*)item)->parent)->id != -1)
+ vnode = (((vec_real32_item*)item)->vlayer)->vnode;
+ vlayer = (VLayer*)BLI_dlist_find_link(&(((VGeomData*)vnode->data)->layers), 0 );
+ vvert = (VerseVert*)BLI_dlist_find_link(&(vlayer->dl), ((vec_real32_item*)item)->id );
+ if(vvert != NULL)
send_verse_vert_vec_real32((vec_real32_item*)item, type);
break;
case VERSE_FACE_UINT8: /* parent item has to exist */
- if( ((verse_parent*)((uint8_item*)item)->parent)->id != -1)
+ vnode = (((uint8_item*)item)->vlayer)->vnode;
+ vlayer = (VLayer*)BLI_dlist_find_link(&(((VGeomData*)vnode->data)->layers), 1 );
+ vface = (VerseFace*)BLI_dlist_find_link(&(vlayer->dl), ((uint8_item*)item)->id );
+ if(vface != NULL)
send_verse_face_uint8((uint8_item*)item, type);
break;
case VERSE_FACE_UINT32: /* parent item has to exist */
- if( ((verse_parent*)((uint32_item*)item)->parent)->id != -1)
+ vnode = (((uint32_item*)item)->vlayer)->vnode;
+ vlayer = (VLayer*)BLI_dlist_find_link(&(((VGeomData*)vnode->data)->layers), 1 );
+ vface = (VerseFace*)BLI_dlist_find_link(&(vlayer->dl), ((uint32_item*)item)->id );
+ if(vface != NULL)
send_verse_face_uint32((uint32_item*)item, type);
break;
case VERSE_FACE_REAL32: /* parent item has to exist */
- if( ((verse_parent*)((real32_item*)item)->parent)->id != -1)
+ vnode = (((real32_item*)item)->vlayer)->vnode;
+ vlayer = (VLayer*)BLI_dlist_find_link(&(((VGeomData*)vnode->data)->layers), 1 );
+ vface = (VerseFace*)BLI_dlist_find_link(&(vlayer->dl), ((real32_item*)item)->id );
+ if(vface != NULL)
send_verse_face_real32((real32_item*)item, type);
break;
case VERSE_FACE_QUAT_UINT32: /* parent item has to exist */
- if( ((verse_parent*)((quat_uint32_item*)item)->parent)->id != -1)
+ vnode = (((quat_uint32_item*)item)->vlayer)->vnode;
+ vlayer = (VLayer*)BLI_dlist_find_link(&(((VGeomData*)vnode->data)->layers), 1 );
+ vface = (VerseFace*)BLI_dlist_find_link(&(vlayer->dl), ((quat_uint32_item*)item)->id );
+ if(vface != NULL)
send_verse_face_corner_quat_uint32((quat_uint32_item*)item, type);
break;
case VERSE_FACE_QUAT_REAL32: /* parent item has to exist */
- if( ((verse_parent*)((quat_real32_item*)item)->parent)->id != -1)
+ vnode = (((quat_real32_item*)item)->vlayer)->vnode;
+ vlayer = (VLayer*)BLI_dlist_find_link(&(((VGeomData*)vnode->data)->layers), 1 );
+ vface = (VerseFace*)BLI_dlist_find_link(&(vlayer->dl), ((quat_real32_item*)item)->id );
+ if(vface != NULL)
send_verse_face_corner_quat_real32((quat_real32_item*)item, type);
break;
}
@@ -479,12 +508,10 @@
*/
void send_verse_face_corner_quat_real32(quat_real32_item *item, short type)
{
- struct VerseFace *vface = (VerseFace*)item->parent;
-
verse_send_g_polygon_set_corner_real32(
- vface->vlayer->vnode->id,
- item->layer_id,
- vface->id,
+ item->vlayer->vnode->id,
+ item->vlayer->id,
+ item->id,
item->value[0],
item->value[1],
item->value[2],
@@ -496,12 +523,10 @@
*/
void send_verse_face_corner_quat_uint32(quat_uint32_item *item, short type)
{
- struct VerseFace *vface = (VerseFace*)item->parent;
-
verse_send_g_polygon_set_corner_uint32(
- vface->vlayer->vnode->id,
- item->layer_id,
- vface->id,
+ item->vlayer->vnode->id,
+ item->vlayer->id,
+ item->id,
item->value[0],
item->value[1],
item->value[2],
@@ -513,12 +538,10 @@
*/
void send_verse_face_real32(real32_item *item, short type)
{
- struct VerseFace *vface = (VerseFace*)item->parent;
-
verse_send_g_polygon_set_face_real32(
- vface->vlayer->vnode->id,
- item->layer_id,
- vface->id,
+ item->vlayer->vnode->id,
+ item->vlayer->id,
+ item->id,
item->value);
}
@@ -527,12 +550,10 @@
*/
void send_verse_face_uint32(uint32_item *item, short type)
{
- struct VerseFace *vface = (VerseFace*)item->parent;
-
verse_send_g_polygon_set_face_uint32(
- vface->vlayer->vnode->id,
- item->layer_id,
- vface->id,
+ item->vlayer->vnode->id,
+ item->vlayer->id,
+ item->id,
item->value);
}
@@ -541,12 +562,10 @@
*/
void send_verse_face_uint8(uint8_item *item, short type)
{
- struct VerseFace *vface = (VerseFace*)item->parent;
-
verse_send_g_polygon_set_face_uint8(
- vface->vlayer->vnode->id,
- item->layer_id,
- vface->id,
+ item->vlayer->vnode->id,
+ item->vlayer->id,
+ item->id,
item->value);
}
@@ -555,12 +574,10 @@
*/
void send_verse_vert_vec_real32(vec_real32_item *item, short type)
{
- struct VerseVert *vvert = (VerseVert*)item->parent;
-
verse_send_g_vertex_set_xyz_real32(
- vvert->vlayer->vnode->id,
- item->layer_id,
- vvert->id,
+ item->vlayer->vnode->id,
+ item->vlayer->id,
+ item->id,
item->value[0],
item->value[1],
item->value[2]);
@@ -571,12 +588,10 @@
*/
void send_verse_vert_real32(real32_item *item, short type)
{
- struct VerseVert *vvert = (VerseVert*)item->parent;
-
verse_send_g_vertex_set_real32(
- vvert->vlayer->vnode->id,
- item->layer_id,
- vvert->id,
+ item->vlayer->vnode->id,
+ item->vlayer->id,
+ item->id,
item->value);
}
@@ -585,12 +600,10 @@
*/
void send_verse_vert_uint32(uint32_item *item, short type)
{
- struct VerseVert *vvert = (VerseVert*)item->parent;
-
verse_send_g_vertex_set_uint32(
- vvert->vlayer->vnode->id,
- item->layer_id,
- vvert->id,
+ item->vlayer->vnode->id,
+ item->vlayer->id,
+ item->id,
item->value);
}
@@ -663,7 +676,6 @@
vface->flag |= FACE_SENT;
if(vface->v3 != -1) {
-/* printf("\tSEND: VerseFace: %d, %d, %d, %d, %d\n", vface->id, vface->v0, vface->v3, vface->v2, vface->v1);*/
verse_send_g_polygon_set_corner_uint32(
vface->vlayer->vnode->id,
vface->vlayer->id,
@@ -674,7 +686,6 @@
vface->v1); /* verse use clock-wise winding */
}
else {
-/* printf("\tSEND: VerseFace: %d, %d, %d, %d, %d\n", vface->id, vface->v0, vface->v2, vface->v1, vface->v3);*/
verse_send_g_polygon_set_corner_uint32(
vface->vlayer->vnode->id,
vface->vlayer->id,
@@ -948,162 +959,80 @@
return geom;
}
-/*
- * callback function: vertex crease was set
- */
-static void cb_g_crease_set_vertex(
- void *user_data,
- VNodeID node_id,
- const char *layer,
- uint32 def_crease)
+/* Create item containing 4 floats */
+static quat_real32_item *create_quat_real32_item(
+ VLayer *vlayer,
+ uint32 item_id,
+ real32 v0,
+ real32 v1,
+ real32 v2,
+ real32 v3)
{
-/* struct VerseSession *session = (VerseSession*)current_verse_session();
- struct VNode *vnode;*/
-}
+ struct quat_real32_item *item;
-/*
- * callback function: edge crease was set
- */
-static void cb_g_crease_set_edge(
- void *user_data,
- VNodeID node_id,
- const char *layer,
- uint32 def_crease)
-{
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list