SeExpr
EditableExpression.h
Go to the documentation of this file.
1 /*
2 * Copyright Disney Enterprises, Inc. All rights reserved.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License
6 * and the following modification to it: Section 6 Trademarks.
7 * deleted and replaced with:
8 *
9 * 6. Trademarks. This License does not grant permission to use the
10 * trade names, trademarks, service marks, or product names of the
11 * Licensor and its affiliates, except as required for reproducing
12 * the content of the NOTICE file.
13 *
14 * You may obtain a copy of the License at
15 * http://www.apache.org/licenses/LICENSE-2.0
16 *
17 * @file EditableExpression.h
18 * @author Andrew Selle
19 */
20 #ifndef __EditableExpression__
21 #define __EditableExpression__
22 
23 #include <vector>
24 #include <string>
25 
26 class Editable;
27 
30  std::string _expr; // original full expression
31  typedef std::vector<Editable*> Editables;
32  std::vector<Editable*> _editables; // control that can edit the expression
33  std::vector<std::string> _variables;
34 public:
37 
39  void setExpr(const std::string& expr);
40 
42  std::string getEditedExpr() const;
43 
45  bool controlsMatch(const EditableExpression& other) const;
46 
48  void updateString(const EditableExpression& other);
49 
51  Editable* operator[](const int i){return _editables[i];}
52 
54  size_t size() const{return _editables.size();}
55 
57  const std::vector<std::string>& getVariables() const{return _variables;}
58 private:
60  void cleanup();
61 };
62 
63 #endif
Editable * operator[](const int i)
Access an editable parameter.
void setExpr(const std::string &expr)
Set&#39;s expressions and parses it into &quot;control editable form&quot;.
</pre >< h2 > Evaluating expressions</h2 > Evaluating an expression is pretty easy But before we can do that we need to make an instance< pre > GrapherExpr expr("x+x^2")
size_t size() const
Return the count of editable parameters.
const std::vector< std::string > & getVariables() const
Get list of commentsø
std::string getEditedExpr() const
Return a reconstructed expression using all the editable&#39;s current values.
std::vector< Editable * > _editables
Factors a SeExpr into an editable expression with controls (i.e. value boxes, curve boxes) ...
void updateString(const EditableExpression &other)
Update the string refered to into the controls (this is only valid if controlsmatch) ...
bool controlsMatch(const EditableExpression &other) const
Check if the other editable expression has editables that all match i.e. the controls are same...
std::vector< std::string > _variables
std::vector< Editable * > Editables
void cleanup()
clean memeory