1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2010 - DIGITEO - Manuel Juliachs
4  *
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  *
7  * This file is hereby licensed under the terms of the GNU GPL v2.0,
8  * pursuant to article 5.3.4 of the CeCILL v.2.1.
9  * This file was originally licensed under the terms of the CeCILL v2.1,
10  * and continues to be available under such terms.
11  * For more information, see the COPYING file which you should have received
12  * along with this program.
13  *
14  */
15 
16 #ifndef DATA_3D_HXX
17 #define DATA_3D_HXX
18 
19 #include <string>
20 
21 #include "DataProperties.hxx"
22 
23 extern "C" {
24 #include "BOOL.h"
25 
26 #include <stdio.h>
27 }
28 
29 /**
30  * An abstract 3D data class
31  * To be completed
32  */
33 
34 class Data3D
35 {
36 protected:
37     /* To be added: a member indicating how color is specified (per-vertex or per-facet) */
38 
39 public :
40     /**
41      * Constructor
42      */
43     Data3D(void);
44 
45     /**
46      * Destructor
47      */
48     virtual ~Data3D(void);
49 
50     /**
51      * Returns the identifier associated to a property name
52      * @param[in] propertyName the property name
53      * @return the property identifier
54      */
55     virtual int getPropertyFromName(int propertyName);
56 
57     /**
58      * Sets a data property
59      * @param[in] property the property identifier
60      * @param[in] value a pointer to the property values
61      * @param[in] numElements the number of elements to set
62      * @return 1 if the property has been successfully set, 0 otherwise
63      */
64     virtual int setDataProperty(int property, void const* value, int numElements);
65 
66     /**
67      * Returns a data property
68      * @param[in] property the property identifier
69      * @param[out] a pointer to a pointer to the returned property values
70      */
71     virtual void getDataProperty(int property, void **_pvData);
72 };
73 
74 #endif
75