Home | History | Annotate | Download | only in animator
      1 
      2 /*
      3  * Copyright 2006 The Android Open Source Project
      4  *
      5  * Use of this source code is governed by a BSD-style license that can be
      6  * found in the LICENSE file.
      7  */
      8 
      9 
     10 #ifndef SkDraw3D_DEFINED
     11 #define SkDraw3D_DEFINED
     12 
     13 #include "SkCamera.h"
     14 #include "SkDrawable.h"
     15 #include "SkMemberInfo.h"
     16 
     17 class Sk3D_Patch;
     18 
     19 struct Sk3D_Point {
     20     DECLARE_NO_VIRTUALS_MEMBER_INFO(3D_Point);
     21     Sk3D_Point();
     22 private:
     23     SkPoint3D fPoint;
     24 };
     25 
     26 class Sk3D_Camera : public SkDrawable {
     27     DECLARE_MEMBER_INFO(3D_Camera);
     28     Sk3D_Camera();
     29     virtual ~Sk3D_Camera();
     30     virtual bool draw(SkAnimateMaker& );
     31 private:
     32     SkScalar hackWidth;
     33     SkScalar hackHeight;
     34     SkCamera3D fCamera;
     35     Sk3D_Patch* patch;
     36 };
     37 
     38 class Sk3D_Patch : public SkDisplayable {
     39     DECLARE_MEMBER_INFO(3D_Patch);
     40 private:
     41     virtual void executeFunction(SkDisplayable* , int index,
     42         SkTDArray<SkScriptValue>& parameters, SkDisplayTypes type,
     43         SkScriptValue* );
     44     virtual const SkFunctionParamType* getFunctionsParameters();
     45     SkPatch3D  fPatch;
     46     static const SkFunctionParamType fFunctionParameters[];
     47     friend class Sk3D_Camera;
     48 };
     49 
     50 #endif // SkDraw3D_DEFINED
     51