Commit: de60a9646a6fddbe0413aab87385bf37020f3a54
Author: Nick Wu
Date:   Thu Jun 21 16:36:01 2018 +0800
Branches: soc-2018-npr
https://developer.blender.org/rBde60a9646a6fddbe0413aab87385bf37020f3a54

Continue modifying files. Don't compile!

===================================================================

M       source/blender/draw/engines/lanpr/lanpr_all.h
M       source/blender/draw/engines/lanpr/lanpr_ops.c
M       source/blender/draw/engines/lanpr/lanpr_util.c
M       source/blender/draw/engines/lanpr/lanpr_util.h

===================================================================

diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h 
b/source/blender/draw/engines/lanpr/lanpr_all.h
index 13730411f03..6cf5686a08d 100644
--- a/source/blender/draw/engines/lanpr/lanpr_all.h
+++ b/source/blender/draw/engines/lanpr/lanpr_all.h
@@ -268,8 +268,8 @@ typedef struct LANPR_RenderBuffer {
        int TileSizeW, TileSizeH;
        int TileCountX, TileCountY;
        real  WidthPerTile, HeightPerTile;
-       //tnsMatrix44d    ViewProjection;
-       //tnsMatrix44d    VPInverse;
+       tnsMatrix44d    ViewProjection;
+       tnsMatrix44d    VPInverse;
 
        nSafeString*    OutputFolder;//end with a slash;
        nSafeString*    ImagePrefix;
@@ -350,7 +350,7 @@ typedef struct LANPR_RenderBuffer {
        //tnsRenderBufferPreviewNode RenderPreview[32];
 
        struct Scene*          Scene;
-       struct Camera*         Camera;
+       struct Object*         Camera;
 
        //tnsRenderTriangles are in mesh object.
 }LANPR_RenderBuffer;
@@ -366,9 +366,9 @@ typedef struct LANPR_RenderTriangle {
        real              GN[3];
        real              GC[3];
        struct BMFace*           F;
-       ListBase          IntersectingVerts;
+       nListHandle       IntersectingVerts;
        char              CullStatus;
-       struct LANPR_RenderLine* Testing;       //Should Be tRT** 
Testing[NumOfThreads]
+       struct LANPR_RenderTriangle* Testing;   //Should Be tRT** 
Testing[NumOfThreads]
 }LANPR_RenderTriangle;
 
 typedef struct LANPR_RenderTriangleThread {
@@ -399,7 +399,7 @@ typedef struct LANPR_RenderVert{
        int FrameBufferCoordi[2];
        struct BMVert*    V;           //Used As R When Intersecting
        struct LANPR_RenderLine*     IntersectingLine;
-       struct LANPR_RenderVert*     IntersectintLine2;
+       struct LANPR_RenderLine*     IntersectintLine2;
        struct LANPR_RenderTriangle* IntersectWith;     //   Positive 1         
Negative 0
        //tnsRenderTriangle* IntersectingOnFace;       //         <|            
   |>
        char        Positive;             //                 L---->|----->R     
 L---->|----->R
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c 
b/source/blender/draw/engines/lanpr/lanpr_ops.c
index 5e3774d1256..c1be3220778 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -39,6 +39,10 @@ Author(s):WuYiming - [email protected]
 
 struct Object;
 
+
+int lanpr_TriangleLineImageSpaceIntersectTestOnlyV2(LANPR_RenderTriangle* rt, 
LANPR_RenderLine* rl, Camera* cam, tnsMatrix44d vp, double* From, double* To);
+
+
 /* ====================================== base structures 
=========================================== */
 
 #define TNS_BOUND_AREA_CROSSES(b1,b2)\
@@ -91,7 +95,7 @@ void lanpr_MakeInitialBoundingAreas(LANPR_RenderBuffer* rb) {
 }
 void lanpr_ConnectNewBoundingAreas(LANPR_RenderBuffer* rb, LANPR_BoundingArea* 
Root) {
        LANPR_BoundingArea* ba = Root->Child, *tba;
-       nListItemPointer* lip,*lip2,*lip3,*NextLip;
+       nListItemPointer* lip,*lip2,*NextLip;
        nStaticMemoryPool* mph= &rb->RenderDataPool;
 
        lstAppendPointerStaticPool(mph, &ba[1].RP, &ba[0]);
@@ -257,8 +261,6 @@ int lanpr_LineCrossesBoundingArea(LANPR_RenderBuffer* fb, 
tnsVector2d L, tnsVect
        return 0;
 }
 int lanpr_TriangleCoversBoundingArea(LANPR_RenderBuffer* fb, 
LANPR_RenderTriangle* rt, LANPR_BoundingArea* ba) {
-
-       real vx, vy;
        tnsVector2d p1, p2, p3, p4;
        real
                *FBC1 = rt->V[0]->FrameBufferCoord,
@@ -341,12 +343,12 @@ void lanpr_AddTriangles(LANPR_RenderBuffer* rb) {
        LANPR_RenderTriangle* rt;
        LANPR_RenderTile* tile;
        tnsMatrix44d VP;
-       Camera* c = ((Camera*)rb->Scene->ActiveCamera);
+       Camera* c = ((Camera*)rb->Scene->camera);
        int i, lim;
        int x1, x2, y1, y2;
        int r, co;
        //tnsMatrix44d proj, view, result, inv;
-       //tMatMakePerspectiveMatrix44d(proj, c->FOV, (real)fb->W / (real)fb->H, 
c->ZMin, c->ZMax);
+       //tMatMakePerspectiveMatrix44d(proj, c->FOV, (real)fb->W / (real)fb->H, 
c->clipsta, c->clipend);
        //tMatLoadIdentity44d(view);
        //tObjApplySelfTransformMatrix(c, 0);
        //tObjApplyGlobalTransformMatrixReverted(c);
@@ -682,7 +684,7 @@ void lanpr_CalculateSingleLineOcclusion(LANPR_RenderBuffer* 
rb, LANPR_RenderLine
        LANPR_RenderTriangleThread* rt;
        nListItemPointer* lip;
        LANPR_RenderVert* rv;
-       Camera* c = rb->Scene->ActiveCamera;
+       Camera* c = rb->Scene->camera->data;
        real l, r;
        real k = (rl->R->FrameBufferCoord[1] - rl->L->FrameBufferCoord[1]) / 
(rl->R->FrameBufferCoord[0] - rl->L->FrameBufferCoord[0] + 1e-30);
        int PositiveX = (rl->R->FrameBufferCoord[0] - 
rl->L->FrameBufferCoord[0])>0 ? 1 : 0;
@@ -1457,31 +1459,31 @@ void lanpr_CullTriangles(LANPR_RenderBuffer* rb) {
 void lanpr_PerspectiveDivision(LANPR_RenderBuffer* rb) {
        LANPR_RenderVert* rv;
        LANPR_RenderElementLinkNode* reln;
-       Camera* cam = rb->Scene->ActiveCamera;
+       Camera* cam = rb->Scene->camera->data;
        int i;
 
-       if (cam->CameraType == TNS_CAMERA_ORTHO) return;
+       if (cam->type == CAM_PERSP) return;
 
        for (reln = rb->VertexBufferPointers.pFirst; reln; reln = 
reln->Item.pNext) {
                rv = reln->Pointer;
                for (i = 0; i < reln->ElementCount; i++) {
                        //if (rv->FrameBufferCoord[2] < -DBL_EPSILON) continue;
                        tMatVectorMultiSelf3d(rv[i].FrameBufferCoord, 1 / 
rv[i].FrameBufferCoord[3]);
-                       rv[i].FrameBufferCoord[2] = cam->ZMin*cam->ZMax / 
(cam->ZMax - fabs(rv[i].FrameBufferCoord[2]) * (cam->ZMax - cam->ZMin));
+                       rv[i].FrameBufferCoord[2] = cam->clipsta*cam->clipend / 
(cam->clipend - fabs(rv[i].FrameBufferCoord[2]) * (cam->clipend - 
cam->clipsta));
                }
        }
 }
 
-void lanpr_TransformRenderVert(BMVert* V, LANPR_RenderVert* RVBuf, real* 
MVMat, real* MVPMat, Camera* Camera) {//real HeightMultiply, real ZMin, real 
ZMax) {
+void lanpr_TransformRenderVert(BMVert* V, LANPR_RenderVert* RVBuf, real* 
MVMat, real* MVPMat, Camera* Camera) {//real HeightMultiply, real clipsta, real 
clipend) {
        LANPR_RenderVert* rv = &RVBuf[V->I];
        rv->V = V;
        V->RV = rv;
-       tMatApplyTransform43d(rv->GLocation, MVMat, V->P);
-       tMatApplyTransform44d(rv->FrameBufferCoord, MVPMat, V->P);
+       tMatApplyTransform43df(rv->GLocation, MVMat, V->co);
+       tMatApplyTransform43df(rv->FrameBufferCoord, MVPMat, V->co);
 
        
//if(rv->FrameBufferCoord[2]>0)tMatVectorMultiSelf3d(rv->FrameBufferCoord, (1 / 
rv->FrameBufferCoord[3]));
        //else tMatVectorMultiSelf3d(rv->FrameBufferCoord, 
-rv->FrameBufferCoord[3]);
-       //   rv->FrameBufferCoord[2] = Camera->ZMin* Camera->ZMax / 
(Camera->ZMax - fabs(rv->FrameBufferCoord[2]) * (Camera->ZMax - Camera->ZMin));
+       //   rv->FrameBufferCoord[2] = Camera->clipsta* Camera->clipend / 
(Camera->clipend - fabs(rv->FrameBufferCoord[2]) * (Camera->clipend - 
Camera->clipsta));
 }
 void lanpr_CalculateRenderTriangleNormal(LANPR_RenderTriangle* rt) {
        tnsVector3d L, R;
@@ -1501,7 +1503,7 @@ void lanpr_MakeRenderGeometryBuffersRecursive(Object* o, 
real* MVMat, real* MVPM
        tnsMatrix44d NewMV;
        LANPR_RenderBuffer* fb = rb->FrameBuffer;
        LANPR_RenderElementLinkNode* reln;
-       Camera* c = rb->Scene->ActiveCamera;
+       Camera* c = rb->Scene->camera->data;
        Material* m;
 
        //if (o->RenderTriangles) FreeMem(o->RenderTriangles);
@@ -1512,13 +1514,13 @@ void lanpr_MakeRenderGeometryBuffersRecursive(Object* 
o, real* MVMat, real* MVPM
 
        if (o->Type == TNS_OBJECT_MESH) {
                mo = o;
-               o->RenderVertices = CreateNewBuffer(LANPR_RenderVert, mo->numV);
+               o->RenderVertices = CreateNewBuffer(LANPR_RenderVert, 
mo->totvert);
                o->RenderTriangles = calloc(mo->TriangleCount, 
rb->TriangleSize);//CreateNewBuffer(LANPR_RenderTriangle, mo->TriangleCount);
                                                                                
                                                                 
//o->RenderLines = CreateNewBuffer(LANPR_RenderLine, mo->TriangulatedEdgeCount);
 
                reln = lstAppendPointerStaticSized(&rb->VertexBufferPointers, 
&rb->RenderDataPool, o->RenderVertices,
                        sizeof(LANPR_RenderElementLinkNode));
-               reln->ElementCount = mo->numV;
+               reln->ElementCount = mo->totvert;
                reln->ObjectRef = mo;
 
                reln = lstAppendPointerStaticSized(&rb->TriangleBufferPointers, 
&rb->RenderDataPool, o->RenderTriangles,
@@ -1527,8 +1529,8 @@ void lanpr_MakeRenderGeometryBuffersRecursive(Object* o, 
real* MVMat, real* MVPM
                reln->ObjectRef = mo;
 
                for (v = mo->V.pFirst; v; v = v->Item.pNext) {
-                       lanpr_TransformRenderVert(v, o->RenderVertices, NewMV, 
NewMVP, c);//,HeightMultiply,c->ZMin,c->ZMax);
-                       tObjRecalculateVertNormal(v);
+                       lanpr_TransformRenderVert(v, o->RenderVertices, NewMV, 
NewMVP, c);//,HeightMultiply,c->clipsta,c->clipend);
+                       //tObjRecalculateVertNormal(v);
                }
 
                for (e = mo->E.pFirst; e; e = e->Item.pNext) {
@@ -1544,12 +1546,12 @@ void lanpr_MakeRenderGeometryBuffersRecursive(Object* 
o, real* MVMat, real* MVPM
 
                rt = o->RenderTriangles;
                for (f = mo->F.pFirst; f; f = f->Item.pNext) {
-                       tObjRecalculateFaceAverageNormal(f);
-                       tObjSimpleTriangulateRender(f, rt, rb->TriangleSize, 
o->RenderVertices, &rb->AllRenderLines, &rt, &rb->RenderDataPool);
+                       //tObjRecalculateFaceAverageNormal(f);
+                       //tObjSimpleTriangulateRender(f, rt, rb->TriangleSize, 
o->RenderVertices, &rb->AllRenderLines, &rt, &rb->RenderDataPool);
                        // already done in the func above. 
lanpr_CalculateRenderTriangleNormal(rt);
                        tMatApplyNormalTransform43d(f->GNormal, MVMat, 
f->FaceNormal);
                        tMatNormalizeSelf3d(f->GNormal);
-                       m = tnsGetIndexedMaterial(rb->Scene, f->MaterialID);
+                       //m = tnsGetIndexedMaterial(rb->Scene, f->MaterialID);
                        //if(m) m->PreviewVCount += (f->TriangleCount*3);
                }
        }
@@ -1561,7 +1563,7 @@ void lanpr_MakeRenderGeometryBuffersRecursive(Object* o, 
real* MVMat, real* MVPM
 void tnsMakeRenderGeometryBuffers(Scene* s, Camera* c, LANPR_RenderBuffer* rb, 
int HeightMultiply) {
        Object* o;
        tnsMatrix44d proj, view, result, inv;
-       LANPR_RenderBuffer* fb = rb->FrameBuffer;
+       LANPR_RenderBuffer* fb = rb;
 
        if (!c) return;
 
@@ -1569,17 +1571,17 @@ void tnsMakeRenderGeometryBuffers(Scene* s, Camera* c, 
LANPR_RenderBuffer* rb, i
 
        real asp = ((real)fb->W / (real)fb->H);
 
-       if (c->CameraType == TNS_CAMERA_PERSPECTIVE) {
-               tMatMakePerspectiveMatrix44d(proj, c->FOV, asp, c->ZMin, 
c->ZMax);
-       }elif(c->CameraType == TNS_CAMERA_ORTHO) {
+       if (c->type == CAM_PERSP) {
+               tMatMakePerspectiveMatrix44d(proj, c->FOV, asp, c->clipsta, 
c->clipend);
+       }elif(c->type == CAM_ORTHO) {
                real w = c->OrthScale;
-               tMatMakeOrthographicMatrix44d(proj, -w, w, -w / asp, w / asp, 
c->ZMin, c->ZMax);
+               tMatMakeOrthographicMatrix44d(proj, -w, w, -w / asp, w / asp, 
c->clipsta, c->clipend);
        }
 
        tMatLo

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to