source typo fixes pt6
This commit is contained in:
parent
ec5f19ac4b
commit
3017173c9a
|
@ -1557,7 +1557,7 @@ void Application::runApplication()
|
|||
processCmdLineFiles();
|
||||
|
||||
if (mConfig["RunMode"] == "Cmd") {
|
||||
// Run the comandline interface
|
||||
// Run the commandline interface
|
||||
Interpreter().runCommandLine("FreeCAD Console mode");
|
||||
}
|
||||
else if (mConfig["RunMode"] == "Internal") {
|
||||
|
@ -1809,7 +1809,7 @@ void Application::ParseOptions(int ac, char ** av)
|
|||
//x11.add_options()
|
||||
// ("display", boost::program_options::value< string >(), "set the X-Server")
|
||||
// ;
|
||||
//0000723: improper handling of qt specific comand line arguments
|
||||
//0000723: improper handling of qt specific command line arguments
|
||||
std::vector<std::string> args;
|
||||
bool merge=false;
|
||||
for (int i=1; i<ac; i++) {
|
||||
|
@ -1873,7 +1873,7 @@ void Application::ParseOptions(int ac, char ** av)
|
|||
if (vm.count("help")) {
|
||||
std::stringstream str;
|
||||
str << mConfig["ExeName"] << endl << endl;
|
||||
str << "For detailed descripton see http://www.freecadweb.org" << endl<<endl;
|
||||
str << "For detailed description see http://www.freecadweb.org" << endl<<endl;
|
||||
str << "Usage: " << mConfig["ExeName"] << " [options] File1 File2 ..." << endl << endl;
|
||||
str << visible << endl;
|
||||
throw Base::ProgramInformation(str.str());
|
||||
|
|
|
@ -124,7 +124,7 @@ public:
|
|||
|
||||
|
||||
/** @name Signals of the document
|
||||
* This signals are an agregation of all document. If you only
|
||||
* This signals are an aggregation of all document. If you only
|
||||
* the signal of a special document connect to the document itself
|
||||
*/
|
||||
//@{
|
||||
|
|
|
@ -606,7 +606,7 @@ void Document::exportGraphviz(std::ostream& out) const
|
|||
auto uvi = in_use.begin();
|
||||
auto uvi_end = in_use.end();
|
||||
|
||||
// Flag that no changes has occured so far. If the loop goes through
|
||||
// Flag that no changes has occurred so far. If the loop goes through
|
||||
// without this flag being set to true, we are done.
|
||||
changed = false;
|
||||
|
||||
|
@ -2318,7 +2318,7 @@ void Document::remObject(const char* sName)
|
|||
}
|
||||
#endif //USE_OLD_DAG
|
||||
|
||||
// Before deleting we must nullify all dependant objects
|
||||
// Before deleting we must nullify all dependent objects
|
||||
breakDependency(pos->second, true);
|
||||
|
||||
//and remove the tip if needed
|
||||
|
@ -2409,7 +2409,7 @@ void Document::_remObject(DocumentObject* pcObject)
|
|||
|
||||
void Document::breakDependency(DocumentObject* pcObject, bool clear)
|
||||
{
|
||||
// Nullify all dependant objects
|
||||
// Nullify all dependent objects
|
||||
for (std::map<std::string,DocumentObject*>::iterator it = d->objectMap.begin(); it != d->objectMap.end(); ++it) {
|
||||
std::map<std::string,App::Property*> Map;
|
||||
it->second->getPropertyMap(Map);
|
||||
|
|
|
@ -93,11 +93,11 @@ public:
|
|||
* for the Creative Commons license suit.
|
||||
*/
|
||||
App::PropertyString License;
|
||||
/// License descripton/contract URL
|
||||
/// License description/contract URL
|
||||
App::PropertyString LicenseURL;
|
||||
/// Meta descriptons
|
||||
/// Meta descriptions
|
||||
App::PropertyMap Meta;
|
||||
/// Material descriptons, used and defined in the Material module.
|
||||
/// Material descriptions, used and defined in the Material module.
|
||||
App::PropertyMap Material;
|
||||
/// read-only name of the temp dir created wen the document is opened
|
||||
PropertyString TransientDir;
|
||||
|
|
|
@ -189,11 +189,11 @@ public:
|
|||
/// get the status Message
|
||||
const char *getStatusString(void) const;
|
||||
|
||||
/** Called in case of loosing a link
|
||||
/** Called in case of losing a link
|
||||
* Get called by the document when a object got deleted a link property of this
|
||||
* object ist pointing to. The standard behaviour of the DocumentObject implementation
|
||||
* is to reset the links to nothing. You may overide this method to implement
|
||||
*additional or different behavior.
|
||||
* additional or different behavior.
|
||||
*/
|
||||
virtual void onLostLinkToObject(DocumentObject*);
|
||||
virtual PyObject *getPyObject(void);
|
||||
|
|
|
@ -908,7 +908,7 @@ Expression * FunctionExpression::evalAggregate() const
|
|||
}
|
||||
|
||||
/**
|
||||
* Evaluate function. Returns a NumberExpression if evaluation is successfuly.
|
||||
* Evaluate function. Returns a NumberExpression if evaluation is successful.
|
||||
* Throws an ExpressionError exception if something fails.
|
||||
*
|
||||
* @returns A NumberExpression with the result.
|
||||
|
|
|
@ -84,7 +84,7 @@ void Extension::initExtension(ExtensionContainer* obj) {
|
|||
throw Base::Exception("Extension: Extension type not set");
|
||||
|
||||
//all properties are initialised without PropertyContainer father. Now that we know it we can
|
||||
//finaly finsih the property initialisation
|
||||
//finally finish the property initialisation
|
||||
std::vector<Property*> list;
|
||||
extensionGetPropertyData().getPropertyList(this, list);
|
||||
for(Property* prop : list)
|
||||
|
|
|
@ -156,7 +156,7 @@ template<> void _class_::init(void){\
|
|||
* can be added to an object from python. It does not work to add the c++ version directly there.
|
||||
*
|
||||
* Note that every method of the extension becomes part of the extendded object when added from c++.
|
||||
* This means one should carefully design the API and make only neccessary methods public or protected.
|
||||
* This means one should carefully design the API and make only necessary methods public or protected.
|
||||
* Every internal method should be private.
|
||||
*
|
||||
* The automatic availibility of methods in the class does not hold for the python interface, only
|
||||
|
@ -165,15 +165,15 @@ template<> void _class_::init(void){\
|
|||
* extension, which works exactly like the normal FreeCAD python object workflow. There is nothing
|
||||
* special at all for extension python objects, the normal xml + imp.cpp approach is used. It must
|
||||
* only be taken care that the objects father is the correct extension base class. Of course also
|
||||
* makse sure your extension returns the correct python ojbect in its "getPyObject" call.
|
||||
* make sure your extension returns the correct python ojbect in its "getPyObject" call.
|
||||
* Every method you create in the extensions python will be later added to an extended object. This
|
||||
* happens automatically for both, c++ and python extension, if "getPyObject" returns the correct
|
||||
* python object. No extra work needs to be done.
|
||||
*
|
||||
* A special case that needs to be handled for extensions is the possibility of overriden methods.
|
||||
* A special case that needs to be handled for extensions is the possibility of overridden methods.
|
||||
* Often it is desired to customise extension behaviour by allowing the user to override methods
|
||||
* provided by the extension. On c++ side this is trival, such methods are simply marked as "virtual"
|
||||
* and can than be overriden in any derived class. This is more involved for the python interface and
|
||||
* and can than be overridden in any derived class. This is more involved for the python interface and
|
||||
* here special care needs to be taken.
|
||||
*
|
||||
* As already seen above one needs to create a special ExtensionPythonT<> object for extension from
|
||||
|
|
|
@ -283,7 +283,7 @@ void ExtensionContainer::Save(Base::Writer& writer) const {
|
|||
|
||||
//Note: save extensions must be called first to ensure that the extension element is always the
|
||||
// very first inside the object element. That is needed as extension eleent works together with
|
||||
// an object attribute, and if annother element would be read first the object attributes would be
|
||||
// an object attribute, and if another element would be read first the object attributes would be
|
||||
// cleared.
|
||||
saveExtensions(writer);
|
||||
App::PropertyContainer::Save(writer);
|
||||
|
@ -294,7 +294,7 @@ void ExtensionContainer::Restore(Base::XMLReader& reader) {
|
|||
//restore dynamic extensions.
|
||||
//Note 1: The extension element must be read first, before all other object elements. That is
|
||||
// needed as the element works together with an object element attribute, which would be
|
||||
// cleared if annother attribute is read first
|
||||
// cleared if another attribute is read first
|
||||
//Note 2: This must happen before the py object of this container is used, as only in the
|
||||
// pyobject constructor the extension methods are added to the container.
|
||||
restoreExtensions(reader);
|
||||
|
@ -349,7 +349,7 @@ void ExtensionContainer::saveExtensions(Base::Writer& writer) const {
|
|||
void ExtensionContainer::restoreExtensions(Base::XMLReader& reader) {
|
||||
|
||||
//Dynamic extensions are optional (also because they are introduced late into the document format)
|
||||
//and hence it is possible that the element does not exist. As we cannot check for the existance of
|
||||
//and hence it is possible that the element does not exist. As we cannot check for the existence of
|
||||
//an element a object attribute is set if extensions are available. Here we check that
|
||||
//attribute, and only if it exists the extensions element will be available.
|
||||
if(!reader.hasAttribute("Extensions"))
|
||||
|
|
|
@ -102,10 +102,10 @@ namespace App {
|
|||
* registerExtension("App::SecondExtensionPython", self)
|
||||
* @endcode
|
||||
*
|
||||
* Extensions can provide methods that should be overriden by the extended object for customisation
|
||||
* Extensions can provide methods that should be overridden by the extended object for customisation
|
||||
* of the extension behaviour. In c++ this is as simple as overriding the provided virtual functions.
|
||||
* In python a class method must be provided which has the same name as the method to override. This
|
||||
* method must not neccessarily be in the object that is extended, it must be in the object which is
|
||||
* method must not necessarily be in the object that is extended, it must be in the object which is
|
||||
* provided to the "registerExtension" call as second argument. This second argument is used as a
|
||||
* proxy and enqueired if the method to override exists in this proxy before calling it.
|
||||
*
|
||||
|
|
|
@ -203,7 +203,7 @@ public:
|
|||
* \li Jade
|
||||
* \li Ruby
|
||||
* \li Emerald
|
||||
* Furthermore there two additional modes \a Default which defines a kind of grey metalic and user defined that
|
||||
* Furthermore there two additional modes \a Default which defines a kind of grey metallic and user defined that
|
||||
* does nothing.
|
||||
* The Color and the other properties of the material are defined in the range [0-1].
|
||||
* If \a MatName is an unknown material name then the type USER_DEFINED is set and the material doesn't get changed.
|
||||
|
|
|
@ -50,8 +50,8 @@ public:
|
|||
}
|
||||
|
||||
/** @name Axis and plane access
|
||||
* This functions returns casted axis and planes objects and asserts they are setted correctly
|
||||
* otherwice Base::Exception is thrown.
|
||||
* This functions returns casted axis and planes objects and asserts they are set correctly
|
||||
* otherwise Base::Exception is thrown.
|
||||
*/
|
||||
///@{
|
||||
// returns X axis
|
||||
|
@ -90,7 +90,7 @@ public:
|
|||
return { getXY(), getXZ(), getYZ() };
|
||||
}
|
||||
|
||||
/// Returns all controled objects (both planes and axis) to iterate on them
|
||||
/// Returns all controlled objects (both planes and axis) to iterate on them
|
||||
std::vector<App::OriginFeature *> baseObjects() const {
|
||||
return { getX(), getY(), getZ(), getXY(), getXZ(), getYZ() };
|
||||
}
|
||||
|
|
|
@ -57,7 +57,7 @@ Part::Part(void)
|
|||
// license stuff
|
||||
ADD_PROPERTY_TYPE(License, ("CC BY 3.0"), 0, App::Prop_None, "License string of the Item");
|
||||
ADD_PROPERTY_TYPE(LicenseURL, ("http://creativecommons.org/licenses/by/3.0/"), 0, App::Prop_None, "URL to the license text/contract");
|
||||
// color and apperance
|
||||
// color and appearance
|
||||
ADD_PROPERTY(Color, (1.0, 1.0, 1.0, 1.0)); // set transparent -> not used
|
||||
|
||||
GroupExtension::initExtension(this);
|
||||
|
|
|
@ -52,9 +52,9 @@ public:
|
|||
App::PropertyString Id;
|
||||
/// unique identifier of the Item
|
||||
App::PropertyUUID Uid;
|
||||
/// material descriptons
|
||||
/// material descriptions
|
||||
App::PropertyMap Material;
|
||||
/// Meta descriptons
|
||||
/// Meta descriptions
|
||||
App::PropertyMap Meta;
|
||||
|
||||
/** License string
|
||||
|
@ -62,7 +62,7 @@ public:
|
|||
* for the Creative Commons license suit.
|
||||
*/
|
||||
App::PropertyString License;
|
||||
/// License descripton/contract URL
|
||||
/// License description/contract URL
|
||||
App::PropertyString LicenseURL;
|
||||
//@}
|
||||
|
||||
|
|
|
@ -58,9 +58,9 @@ struct AppExport PropertyData
|
|||
short Offset,Type;
|
||||
};
|
||||
|
||||
//purpose of this struct is to be constructible from all accepptable container types and to
|
||||
//purpose of this struct is to be constructible from all acceptable container types and to
|
||||
//be able to return the offset to a property from the accepted containers. This allows to use
|
||||
//one function implementation for multiple container types without loosing all type safety by
|
||||
//one function implementation for multiple container types without losing all type safety by
|
||||
//accepting void*
|
||||
struct OffsetBase
|
||||
{
|
||||
|
|
|
@ -48,7 +48,7 @@ If the list contains 'Hidden' then the item even doesn't appear in the property
|
|||
</Methode>
|
||||
<Methode Name="getGroupOfProperty">
|
||||
<Documentation>
|
||||
<UserDocu>Return the name of the group which the property belongs to in this class. The properties sorted in differnt named groups for convenience.</UserDocu>
|
||||
<UserDocu>Return the name of the group which the property belongs to in this class. The properties sorted in different named groups for convenience.</UserDocu>
|
||||
</Documentation>
|
||||
</Methode>
|
||||
<Methode Name="getDocumentationOfProperty">
|
||||
|
|
|
@ -208,7 +208,7 @@ void PropertyExpressionEngine::Restore(Base::XMLReader &reader)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Update graph stucture with given path and expression.
|
||||
* @brief Update graph structure with given path and expression.
|
||||
* @param path Path
|
||||
* @param expression Expression to query for dependencies
|
||||
* @param nodes Map with nodes of graph
|
||||
|
|
|
@ -206,9 +206,9 @@ private:
|
|||
};
|
||||
|
||||
/** Constraint integer properties
|
||||
* This property fullfill the need of constraint integer. It holds basicly a
|
||||
* This property fulfills the need of a constraint integer. It holds basically a
|
||||
* state (integer) and a struct of boundaries. If the boundaries
|
||||
* is not set it act basicly like a IntegerProperty and do no checking.
|
||||
* is not set it act basically like a IntegerProperty and do no checking.
|
||||
* The constraints struct can be created on the heap or build in.
|
||||
*/
|
||||
class AppExport PropertyIntegerConstraint: public PropertyInteger
|
||||
|
@ -229,9 +229,9 @@ public:
|
|||
long LowerBound, UpperBound, StepSize;
|
||||
};
|
||||
/** setting the boundaries
|
||||
* This sets the constraint struct. It can be dynamcly
|
||||
* This sets the constraint struct. It can be dynamically
|
||||
* allocated or set as an static in the class the property
|
||||
* blongs to:
|
||||
* belongs to:
|
||||
* \code
|
||||
* const Constraints percent = {0,100,1}
|
||||
* \endcode
|
||||
|
@ -249,7 +249,7 @@ protected:
|
|||
};
|
||||
|
||||
/** Percent property
|
||||
* This property is a special interger property and holds only
|
||||
* This property is a special integer property and holds only
|
||||
* numbers between 0 and 100.
|
||||
*/
|
||||
|
||||
|
@ -467,9 +467,9 @@ protected:
|
|||
};
|
||||
|
||||
/** Constraint float properties
|
||||
* This property fullfill the need of constraint float. It holds basicly a
|
||||
* This property fulfills the need of a constraint float. It holds basically a
|
||||
* state (float) and a struct of boundaries. If the boundaries
|
||||
* is not set it acts basicly like a PropertyFloat and does no checking
|
||||
* is not set it acts basically like a PropertyFloat and does no checking
|
||||
* The constraints struct can be created on the heap or built-in.
|
||||
*/
|
||||
class AppExport PropertyFloatConstraint: public PropertyFloat
|
||||
|
|
|
@ -163,7 +163,7 @@ public:
|
|||
};
|
||||
|
||||
/** Angle property
|
||||
* This is a property for representing angles. It basicly a float
|
||||
* This is a property for representing angles. It basically a float
|
||||
* property. On the Gui it has a quantity like RAD.
|
||||
*/
|
||||
class AppExport PropertyAngle: public PropertyQuantityConstraint
|
||||
|
|
|
@ -5,9 +5,9 @@
|
|||
|
||||
/** \namespace App
|
||||
\ingroup APP
|
||||
\brief The FreeCAD Aplication layer
|
||||
\brief The FreeCAD Application layer
|
||||
|
||||
This namespace includes Aplication services of FreeCAD like:
|
||||
This namespace includes Application services of FreeCAD like:
|
||||
- The Application class
|
||||
- The Document class
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ public:
|
|||
Item();
|
||||
~Item() {};
|
||||
|
||||
/// Meta descriptons
|
||||
/// Meta descriptions
|
||||
App::PropertyMap Meta;
|
||||
|
||||
/** @name methods override feature */
|
||||
|
|
|
@ -54,7 +54,7 @@ Product::Product() {
|
|||
// license stuff
|
||||
ADD_PROPERTY_TYPE(License,("CC BY 3.0"),0,App::Prop_None,"License string of the Item");
|
||||
ADD_PROPERTY_TYPE(LicenseURL,("http://creativecommons.org/licenses/by/3.0/"),0,App::Prop_None,"URL to the license text/contract");
|
||||
// color and apperance
|
||||
// color and appearance
|
||||
ADD_PROPERTY(Color,(1.0,1.0,1.0,1.0)); // set transparent -> not used
|
||||
ADD_PROPERTY(Visibility,(true));
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ public:
|
|||
App::PropertyString Id;
|
||||
/// unique identifier of the Item
|
||||
App::PropertyUUID Uid;
|
||||
/// material descriptons
|
||||
/// material descriptions
|
||||
App::PropertyMap Material;
|
||||
|
||||
/** License string
|
||||
|
@ -60,7 +60,7 @@ public:
|
|||
* for the Creative Commons license suit.
|
||||
*/
|
||||
App::PropertyString License;
|
||||
/// License descripton/contract URL
|
||||
/// License description/contract URL
|
||||
App::PropertyString LicenseURL;
|
||||
//@}
|
||||
|
||||
|
|
|
@ -87,8 +87,8 @@ typedef boost::adjacency_list_traits<boost::listS, boost::listS, boost::undirect
|
|||
* @brief A type to be used as identifier for vertices and edges
|
||||
*
|
||||
* Vertices and edges need to be identified in a stable(safe/load), unique(over multiple clusters) and
|
||||
* comparable manner. The bgl vertex and edge discriptors don't fullfill this need as they have a direct
|
||||
* relation to the graphs storage. Therefore they change value on moving entitiys to diffrent clusters or
|
||||
* comparable manner. The bgl vertex and edge discriptors don't fulfill this need as they have a direct
|
||||
* relation to the graphs storage. Therefore they change value on moving entitiys to different clusters or
|
||||
* clone actions. This class is used to overcome this problem.
|
||||
**/
|
||||
typedef int universalID;
|
||||
|
@ -146,7 +146,7 @@ struct IDgen {
|
|||
};
|
||||
|
||||
/**
|
||||
* @brief Exception thrown from the graph at any occuring error
|
||||
* @brief Exception thrown from the graph at any occurring error
|
||||
**/
|
||||
struct cluster_error : virtual boost::exception {};
|
||||
|
||||
|
@ -168,7 +168,7 @@ typedef boost::shared_ptr<IDgen> IDpointer;
|
|||
typedef details::list_traits::vertex_descriptor LocalVertex;
|
||||
|
||||
/**
|
||||
* @brief Indentifier for local edge
|
||||
* @brief Identifier for local edge
|
||||
*
|
||||
* The boost graph library works with identifiers for edges which directly relate to there storage.
|
||||
* Therefore they can be used only in the relevant cluster, they are local. These are the descriptors
|
||||
|
@ -210,9 +210,9 @@ struct GlobalEdge {
|
|||
|
||||
|
||||
/**
|
||||
* @brief A graph that can be stacked in a tree-like manner without loosing it connections
|
||||
* @brief A graph that can be stacked in a tree-like manner without losing it connections
|
||||
*
|
||||
* This is basicly a boost adjacency_list with single linked lists 'listS' as storage for vertices and
|
||||
* This is basically a boost adjacency_list with single linked lists 'listS' as storage for vertices and
|
||||
* edges. The edges are undirected. This allows to use all boost graph algorithms and provides therefore
|
||||
* an comprehensive way for analysing and manipulating its content. It further extends the class with the
|
||||
* possibility to cluster its content and to add properties and objects to all entitys. For more
|
||||
|
@ -405,7 +405,7 @@ public:
|
|||
void copyInto(boost::shared_ptr<ClusterGraph> into, Functor& functor) const;
|
||||
|
||||
/**
|
||||
* @brief Compare by adress, not by content
|
||||
* @brief Compare by address, not by content
|
||||
* @param other the cluster to compare with
|
||||
* @return bool if this is the same cluster in memory
|
||||
**/
|
||||
|
@ -413,7 +413,7 @@ public:
|
|||
bool operator== (const T& other) const;
|
||||
|
||||
/**
|
||||
* @brief Compare by adress, not by content
|
||||
* @brief Compare by address, not by content
|
||||
* @param other the cluster to compare with
|
||||
* @return bool if this is the not same cluster in memory
|
||||
**/
|
||||
|
@ -421,7 +421,7 @@ public:
|
|||
bool operator!= (const T& other) const;
|
||||
|
||||
/**
|
||||
* @brief Set diffrent behaviour for changed markers
|
||||
* @brief Set different behaviour for changed markers
|
||||
*
|
||||
* Some methods of the ClusterGraph set it's changed_prop to true. Thats sensible, as they change
|
||||
* the graph. However, there are situations where you want to use the methods but don't want the change
|
||||
|
@ -462,7 +462,7 @@ public:
|
|||
* @brief Creates a new subcluster
|
||||
*
|
||||
* As clusters can be stacked in a tree like manner, this function can be used to create new
|
||||
* children. It automaticly adds it to the subcluster list and adds it to the graph. The new
|
||||
* children. It automatically adds it to the subcluster list and adds it to the graph. The new
|
||||
* subcluster is fully defined by its object and the vertex descriptor which is it's position
|
||||
* in the current cluster.
|
||||
*
|
||||
|
@ -473,7 +473,7 @@ public:
|
|||
/**
|
||||
* @brief Returns the parent cluster
|
||||
*
|
||||
* In the stacked cluster hirarchy most clusters have a parent whcih can be accessed with this function.
|
||||
* In the stacked cluster hirarchy most clusters have a parent which can be accessed with this function.
|
||||
* However, the toplevel cluster dos nothave a parent and a empty shared_ptr is returned.
|
||||
*
|
||||
* @return :shared_ptr< ClusterGraph > the parent cluster or empty pointer
|
||||
|
@ -569,12 +569,12 @@ public:
|
|||
LocalVertex getClusterVertex(boost::shared_ptr<ClusterGraph> g);
|
||||
|
||||
/**
|
||||
* @brief Convinience function for \ref removeCluster
|
||||
* @brief Convenience function for \ref removeCluster
|
||||
**/
|
||||
template<typename Functor>
|
||||
void removeCluster(boost::shared_ptr<ClusterGraph> g, Functor& f);
|
||||
/**
|
||||
* @brief Convinience function for \ref removeCluster
|
||||
* @brief Convenience function for \ref removeCluster
|
||||
**/
|
||||
void removeCluster(boost::shared_ptr<ClusterGraph> g);
|
||||
/**
|
||||
|
@ -673,7 +673,7 @@ public:
|
|||
* Adds an edge between vertices which are not nesseccarily in this local cluster and have therefore to be
|
||||
* identified with global descriptors. The only condition for source and target vertex is that both must be
|
||||
* in the local cluster or any of its subclusters. If thats not the case, the function will fail. On success
|
||||
* a new GlobalEdge will be created, but not neccessarily a local one. If the vertices are in different cluster
|
||||
* a new GlobalEdge will be created, but not necessarily a local one. If the vertices are in different cluster
|
||||
* which are already connected the global edge will be added to this connecting local edge. Thats the one returned
|
||||
* in the seqence. Note that it's possible that the local edge belongs to another subcluster and therefore can't be
|
||||
* used in the local cluster. This case is indicated by the scope return value.
|
||||
|
@ -885,7 +885,7 @@ public:
|
|||
std::pair< object_iterator<Obj>, object_iterator<Obj> > getObjects(LocalEdge k);
|
||||
|
||||
/**
|
||||
* @brief Applys the functor to each occurence of an object
|
||||
* @brief Applys the functor to each occurrence of an object
|
||||
*
|
||||
* Each valid object of the given type is extractet and passed to the function object. Vertices
|
||||
* and edges are searched for valid object pointers, it happens in this order. When a recursive
|
||||
|
@ -967,7 +967,7 @@ public:
|
|||
/**
|
||||
* @brief Move a vertex to a subcluster
|
||||
*
|
||||
* Overloaded convinience function which fetches the local descriptor for the cluster reference and calls
|
||||
* Overloaded convenience function which fetches the local descriptor for the cluster reference and calls
|
||||
* the full parameter equivalent. Both cluster and vertex must be in the local cluster.
|
||||
*
|
||||
* @param v the LocalVertex to be moved
|
||||
|
@ -979,7 +979,7 @@ public:
|
|||
/**
|
||||
* @brief Move a vertex to a subcluster
|
||||
*
|
||||
* Overloaded convinience function which fetches the the cluster reference for the local descriptor and calls
|
||||
* Overloaded convenience function which fetches the the cluster reference for the local descriptor and calls
|
||||
* the full parameter equivalent. Both cluster and vertex must be in the local cluster.
|
||||
*
|
||||
* @param v the LocalVertex to be moved
|
||||
|
@ -1014,7 +1014,7 @@ public:
|
|||
* stands for all edges which use the moved vertex: global descriptors stay the same, but they are moved to new
|
||||
* local edges. Note that this function is the inverse of moveToSubcluster, and doing Pseudocode:
|
||||
* moveToParent(moveToSubcluster(v)) does nothing (only the local descriptor of the moved vertex is
|
||||
* diffrent afterwards).
|
||||
* different afterwards).
|
||||
*
|
||||
* @param v Local vertex which should be moved to the parents cluster
|
||||
* @return LocalVertex the local descriptor of the moved vertex, valid in the parent cluster only.
|
||||
|
@ -1036,9 +1036,9 @@ protected:
|
|||
|
||||
|
||||
/* Searches the global vertex in all local vertices of this graph, and returns the local
|
||||
* one which holds the global vertex. If not successfull the local vertex returned will be
|
||||
* one which holds the global vertex. If not successful the local vertex returned will be
|
||||
* invalid and the bool parameter will be false. If recursive = true, all subclusters will
|
||||
* be seached too, however, if found there the retourned local vertex will be the vertex
|
||||
* be searched too, however, if found there the returned local vertex will be the vertex
|
||||
* representing the toplevel cluster holding the global vertex in the initial graph.
|
||||
* */
|
||||
std::pair<LocalVertex, bool> getContainingVertex(GlobalVertex id, bool recursive = true);
|
||||
|
@ -1049,7 +1049,7 @@ protected:
|
|||
fusion::vector<LocalVertex, boost::shared_ptr<ClusterGraph>, bool> getContainingVertexGraph(GlobalVertex id);
|
||||
|
||||
/* Searches the global edge in all local edges of this graph, and returns the local
|
||||
* one which holds the global edge. If not successfull the local edge returned will be
|
||||
* one which holds the global edge. If not successful the local edge returned will be
|
||||
* invalid and the bool parameter will be false.
|
||||
* */
|
||||
std::pair<LocalEdge, bool> getContainingEdge(GlobalEdge id);
|
||||
|
|
|
@ -149,7 +149,7 @@ protected:
|
|||
virtual void disable() = 0;
|
||||
virtual placeholder* clone() = 0;
|
||||
|
||||
//some runtime type infos are needed, as we cant access the contents with arbitrary functors
|
||||
//some runtime type infos are needed, as we can't access the contents with arbitrary functors
|
||||
virtual std::vector<boost::any> getGenericEquations() = 0;
|
||||
virtual std::vector<boost::any> getGenericConstraints() = 0;
|
||||
virtual std::vector<const std::type_info*> getEquationTypes() = 0;
|
||||
|
|
|
@ -104,7 +104,7 @@ struct constraint_sequence : public seq {
|
|||
std::cout<<"pretty: "<<__PRETTY_FUNCTION__<<std::endl;
|
||||
};
|
||||
|
||||
//dont allow expression equation stacking: the compile time impact is huge if we want to allow
|
||||
//don't allow expression equation stacking: the compile time impact is huge if we want to allow
|
||||
//text parsing
|
||||
/*
|
||||
//an equation gets added to this sequence
|
||||
|
@ -176,11 +176,11 @@ struct Equation : public EQ {
|
|||
};
|
||||
|
||||
//assign complete equation (we need to override the operator= in the derived class anyway as it
|
||||
//is automaticly created by the compiler, so we use a different name here to avoid duplicate
|
||||
//is automatically created by the compiler, so we use a different name here to avoid duplicate
|
||||
//operator= warning on msvc)
|
||||
Derived& assign(const Derived& eq);
|
||||
|
||||
//dont allow expression equation stacking: the compile time impact is huge if we want to allow
|
||||
//don't allow expression equation stacking: the compile time impact is huge if we want to allow
|
||||
//text parsing
|
||||
/*
|
||||
//an equation gets added to this equation
|
||||
|
|
|
@ -197,7 +197,7 @@ struct geometry_clone_traits {
|
|||
|
||||
namespace details {
|
||||
|
||||
// the parameter a geometr needs in a mapped equation system need to be managed seperate, as
|
||||
// the parameter a geometr needs in a mapped equation system need to be managed separate, as
|
||||
// we may want to access the same parameter space from different geometries (if they are linked)
|
||||
// this is done by the parameter space class
|
||||
template<typename Kernel>
|
||||
|
|
|
@ -259,7 +259,7 @@ template< typename edge_prop, typename vertex_prop, typename cluster_prop, typen
|
|||
template<typename Functor>
|
||||
void ClusterGraph<edge_prop, vertex_prop, cluster_prop, objects>::copyInto(boost::shared_ptr<ClusterGraph> into, Functor& functor) const {
|
||||
|
||||
//lists does not provide vertex index, so we have to build our own (cant use the internal
|
||||
//lists does not provide vertex index, so we have to build our own (can't use the internal
|
||||
//vertex_index_property as we would need to reset the indices and that's not possible in const graph)
|
||||
typedef std::map<LocalVertex, int> IndexMap;
|
||||
IndexMap mapIndex;
|
||||
|
@ -272,7 +272,7 @@ void ClusterGraph<edge_prop, vertex_prop, cluster_prop, objects>::copyInto(boost
|
|||
|
||||
//first copy all vertices and edges, but be aware that the objects in the new graph
|
||||
//are also copys only and point to the old graph. there is a bug in older boost version
|
||||
//(<1.5 i belive) that breaks vertex_all propety map for bundled properties, so we
|
||||
//(<1.5 i believe) that breaks vertex_all propety map for bundled properties, so we
|
||||
//have to create our own copie functors
|
||||
into->clear();
|
||||
vertex_copier<Graph> vc(*this, *into);
|
||||
|
@ -581,7 +581,7 @@ ClusterGraph<edge_prop, vertex_prop, cluster_prop, objects>::addEdge(GlobalVerte
|
|||
if(!(d1 && d2))
|
||||
return fusion::make_vector(LocalEdge(), GlobalEdge(), false, false);
|
||||
|
||||
//if both vertices are in a subcluster this one must do the job as we cant access the local edge from here
|
||||
//if both vertices are in a subcluster this one must do the job as we can't access the local edge from here
|
||||
if(v1 == v2 && isCluster(v1)) {
|
||||
fusion::vector<LocalEdge, GlobalEdge, bool, bool> res = getVertexCluster(v1)->addEdge(source, target);
|
||||
fusion::at_c<3> (res) = false;
|
||||
|
@ -1186,7 +1186,7 @@ ClusterGraph<edge_prop, vertex_prop, cluster_prop, objects>::apply_to_bundle(Glo
|
|||
fusion::vector<LocalVertex, boost::shared_ptr<ClusterGraph>, bool> res = getContainingVertexGraph(k);
|
||||
|
||||
if(!fusion::at_c<2> (res)) {
|
||||
//TODO: Throw (propeties return reference, but cant init a reference temporarily)
|
||||
//TODO: Throw (propeties return reference, but can't init a reference temporarily)
|
||||
}
|
||||
|
||||
return fusion::at_c<1> (res)->template apply_to_bundle<functor> (k, f);
|
||||
|
|
|
@ -79,7 +79,7 @@ void Constraint<Sys, Dim>::holder<ConstraintVector, tag1, tag2>::Calculater::ope
|
|||
if(!val.enabled)
|
||||
return;
|
||||
|
||||
//if we are not one of the accessed types we dont need to be recalculated
|
||||
//if we are not one of the accessed types we don't need to be recalculated
|
||||
if((access==rotation && val.access!=rotation)
|
||||
|| (access == general && val.access != general)) {
|
||||
|
||||
|
@ -110,7 +110,7 @@ void Constraint<Sys, Dim>::holder<ConstraintVector, tag1, tag2>::Calculater::ope
|
|||
|
||||
val.m_residual(0) = val.m_eq.calculate(first->m_parameter, second->m_parameter);
|
||||
|
||||
//now see which way we should calculate the gradient (may be diffrent for both geometries)
|
||||
//now see which way we should calculate the gradient (may be different for both geometries)
|
||||
if(first->m_parameterCount) {
|
||||
if(first->getClusterMode()) {
|
||||
//when the cluster is fixed no maps are set as no parameters exist.
|
||||
|
@ -142,7 +142,7 @@ void Constraint<Sys, Dim>::holder<ConstraintVector, tag1, tag2>::Calculater::ope
|
|||
val.m_diff_second_rot(i) = val.m_eq.calculateGradientSecond(first->m_parameter,
|
||||
second->m_parameter, second->m_diffparam.col(i));
|
||||
}
|
||||
//and the translation seperated
|
||||
//and the translation separated
|
||||
for(int i=0; i<3; i++) {
|
||||
val.m_diff_second(i) = val.m_eq.calculateGradientSecond(first->m_parameter,
|
||||
second->m_parameter, second->m_diffparam.col(i+3));
|
||||
|
@ -250,7 +250,7 @@ void Constraint<Sys, Dim>::holder<ConstraintVector, tag1, tag2>::LGZ::operator()
|
|||
//LGZ exists for rotations only
|
||||
for(int i=0; i<3; i++) {
|
||||
|
||||
//only treat if the gradient realy is zero
|
||||
//only treat if the gradient really is zero
|
||||
if(Kernel::isSame(val.m_diff_first_rot(i), 0, 1e-7)) {
|
||||
|
||||
//to get the approximated second derivative we need the slightly moved geometrie
|
||||
|
@ -277,7 +277,7 @@ void Constraint<Sys, Dim>::holder<ConstraintVector, tag1, tag2>::LGZ::operator()
|
|||
|
||||
for(int i=0; i<3; i++) {
|
||||
|
||||
//only treat if the gradient realy is zero
|
||||
//only treat if the gradient really is zero
|
||||
if(Kernel::isSame(val.m_diff_second_rot(i), 0, 1e-7)) {
|
||||
|
||||
//to get the approximated second derivative we need the slightly moved geometrie
|
||||
|
|
|
@ -137,7 +137,7 @@ Derived& Equation<Derived, Option, id, a>::assign(const Derived& eq) {
|
|||
option_copy<options> oc(values);
|
||||
fusion::for_each(eq.values, oc);
|
||||
|
||||
//the assigned eqution can be set back to default for convinience in further usage
|
||||
//the assigned eqution can be set back to default for convenience in further usage
|
||||
const_cast<Derived*>(&eq)->setDefault();
|
||||
|
||||
return *static_cast<Derived*>(this);
|
||||
|
@ -182,7 +182,7 @@ Equation<Derived, Option, id, a>::operator &(T& val) {
|
|||
};
|
||||
*/
|
||||
|
||||
//convinience stream functions for debugging
|
||||
//convenience stream functions for debugging
|
||||
template <typename charT, typename traits>
|
||||
struct print_pair {
|
||||
std::basic_ostream<charT,traits>* stream;
|
||||
|
|
|
@ -216,7 +216,7 @@ void Geometry<Kernel, Dim, TagList>::finishCalculation() {
|
|||
BOOST_LOG_SEV(log, information) << "Finish cluster calculation";
|
||||
#endif
|
||||
}
|
||||
//TODO:non cluster paramter scaling
|
||||
//TODO:non cluster parameter scaling
|
||||
else {
|
||||
m_global = m_parameter;
|
||||
normalize();
|
||||
|
|
|
@ -271,7 +271,7 @@ int Dogleg<Kernel>::solve(typename Kernel::MappedEquationSystem& sys, Functor& r
|
|||
rescale();
|
||||
sys.recalculate();
|
||||
}
|
||||
//it can also happen that the differentials get too small, however, we cant check for that
|
||||
//it can also happen that the differentials get too small, however, we can't check for that
|
||||
else if(iter>1 && (counter>50)) {
|
||||
rescale();
|
||||
sys.recalculate();
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
namespace mpl = boost::mpl;
|
||||
namespace fusion = boost::fusion;
|
||||
|
||||
/* Preprocessor implementation of emit signal. As we need many overloads with diffrent number of
|
||||
/* Preprocessor implementation of emit signal. As we need many overloads with different number of
|
||||
* templated parameters we use boost preprocessor to do the hard repetive work. The definition and
|
||||
* implementation are definded first as they need to be known before usage
|
||||
* */
|
||||
|
@ -112,7 +112,7 @@ struct SignalOwner {
|
|||
/**
|
||||
* @brief Enable or disable signal emittion
|
||||
*
|
||||
* If you want to supress all signals emitted by a object you can do this by calling this function.
|
||||
* If you want to suppress all signals emitted by a object you can do this by calling this function.
|
||||
* All calls to emitSignal() will be blocked until signals aer reenabled by using this function with
|
||||
* onoff = true. Note that signals are not queued, if emitting is disabled all signals are lost.
|
||||
*
|
||||
|
@ -167,7 +167,7 @@ struct Object : public PropertyOwner<typename details::properties_by_object<type
|
|||
*
|
||||
* Returns a new shared_ptr for the Drived type with the same properties as the initial one. If
|
||||
* the new pointer should be used in a new system the parameter \param newSys needs to be that
|
||||
* new system. Overload this function if you have datamembers in any derived class wich are not
|
||||
* new system. Overload this function if you have datamembers in any derived class which are not
|
||||
* copyconstructable.
|
||||
* @tparam Prop property type which should be accessed
|
||||
* @return Prop::type& a reference to the properties actual value.
|
||||
|
|
|
@ -51,12 +51,12 @@ namespace dcm {
|
|||
*
|
||||
* @brief Concept and handling of properties for generic data storage and type extension.
|
||||
*
|
||||
* Properties are a basic building block of the dcm and fullfill two essential tasks: First, build a
|
||||
* Properties are a basic building block of the dcm and fulfill two essential tasks: First, build a
|
||||
* infrastructure for storing data in any kind of object and second, make this data universally accessible.
|
||||
* Universally accessible means in this context, that it shall be possible to retrieve data only by
|
||||
* knowing some kind of identifier. No data type specific get/set functions or access to class members
|
||||
* should be needed to access the stored values. The usage of identifiers allows to design interfaces
|
||||
* for properties in a type interchangable way. Therefore no restrictions are imposed on the interface,
|
||||
* for properties in a type interchangeable way. Therefore no restrictions are imposed on the interface,
|
||||
* no matter what or how much data is stored.
|
||||
*
|
||||
* The connection of data type and identifier is achieved through the property structs, which all follow
|
||||
|
@ -70,7 +70,7 @@ namespace dcm {
|
|||
* of all data-holding entitys with new data types, propertys store their own purpose. Thats
|
||||
* done by extending the property struct with a second typedef which is named kind and which specifies of which
|
||||
* kind the property is. That means, that this typedef defines when the property shall be used and for which
|
||||
* context it is designed for. Dependend on the propertys kind, it will be added to diffrent places inside the dcm.
|
||||
* context it is designed for. Dependend on the propertys kind, it will be added to different places inside the dcm.
|
||||
* A property of kind @ref vertex_property will added to vertices, a property of kind @ref object_property to all
|
||||
* objects and so on.
|
||||
*
|
||||
|
@ -514,7 +514,7 @@ struct empty_prop {
|
|||
* @brief Add a type to clusters
|
||||
*
|
||||
* Allows to specify special types to ClusterGraphs and make a it possibe to distuingish between
|
||||
* diffrent purposes. The cluster types need to be int.
|
||||
* different purposes. The cluster types need to be int.
|
||||
**/
|
||||
struct type_prop {
|
||||
//states the type of a cluster
|
||||
|
|
|
@ -46,7 +46,7 @@ namespace fusion = boost::fusion;
|
|||
namespace dcm {
|
||||
|
||||
struct No_Identifier {}; //struct to show that no identifier shall be used
|
||||
struct Unspecified_Identifier {}; //struct to show that it dosen't matter which identifier type is used
|
||||
struct Unspecified_Identifier {}; //struct to show that it doesn't matter which identifier type is used
|
||||
struct solved {}; //signal emitted when solving is done
|
||||
|
||||
namespace details {
|
||||
|
@ -267,7 +267,7 @@ public:
|
|||
typename boost::disable_if< boost::is_same< typename mpl::find<typename Kernel::PropertySequence, Option>::type,
|
||||
typename mpl::end<typename Kernel::PropertySequence>::type >, void >::type setOption(typename Option::type value);
|
||||
|
||||
//convinience function
|
||||
//convenience function
|
||||
template<typename Option>
|
||||
typename Option::type& option();
|
||||
|
||||
|
|
|
@ -390,7 +390,7 @@ struct Distance::type< Kernel, tag::line3D, tag::line3D > {
|
|||
Vector3 c, n1, n2, nxn;
|
||||
|
||||
//if the lines are parallel we need to fall back to point-line distance
|
||||
//to do this efficently we just hold a point-line distance equation and use it instead
|
||||
//to do this efficiently we just hold a point-line distance equation and use it instead
|
||||
Distance::type<Kernel, tag::point3D, tag::line3D> pl_eqn;
|
||||
|
||||
#ifdef USE_LOGGING
|
||||
|
@ -467,7 +467,7 @@ struct Distance::type< Kernel, tag::line3D, tag::line3D > {
|
|||
Scalar diff = (-dline1.template head<3>().dot(nxn)+c.dot(nxn_diff))*nxn_n;
|
||||
diff -= c.dot(nxn)*nxn.dot(nxn_diff)/nxn_n;
|
||||
|
||||
//absoulute value requires diffrent differentation for diffrent results
|
||||
//absoulute value requires different differentation for different results
|
||||
if(cdn <= 0)
|
||||
diff *= -1;
|
||||
|
||||
|
@ -493,7 +493,7 @@ struct Distance::type< Kernel, tag::line3D, tag::line3D > {
|
|||
Scalar diff = (dline2.template head<3>().dot(nxn)+c.dot(nxn_diff))*nxn_n;
|
||||
diff -= c.dot(nxn)*nxn.dot(nxn_diff)/nxn_n;
|
||||
|
||||
//absoulute value requires diffrent differentation for diffrent results
|
||||
//absoulute value requires different differentation for different results
|
||||
if(cdn <= 0)
|
||||
diff *= -1;
|
||||
|
||||
|
|
|
@ -428,7 +428,7 @@ typename ClusterMath<Sys>::Scalar ClusterMath<Sys>::calculateClusterScale() {
|
|||
//three points on a line need to be treaded as multiple points
|
||||
}
|
||||
|
||||
//more than 3 points dont have a exakt solution. we search for a midpoint from which all points
|
||||
//more than 3 points don't have a exact solution. we search for a midpoint from which all points
|
||||
//are at least MAXFAKTOR*scale away, but not closer than MINFAKTOR*scale
|
||||
|
||||
//get the bonding box to get the center of points
|
||||
|
@ -618,7 +618,7 @@ void ClusterMath<Sys>::applyClusterScale(Scalar scale, bool isFixed) {
|
|||
#ifdef USE_LOGGING
|
||||
BOOST_LOG(log) << "sstrans scale: "<<ssTrans.scaling().factor();
|
||||
BOOST_LOG(log) << "finish transform scale: "<<m_transform.scaling().factor();
|
||||
//we may want to access the scale points for debuging (I mean you, freecad assembly debug!), so
|
||||
//we may want to access the scale points for debugging (I mean you, freecad assembly debug!), so
|
||||
//it is important to transform them too to ensure the points are in the same coordinate system
|
||||
typename Vec::iterator it;
|
||||
for(it=m_points.begin(); it!=m_points.end(); it++) {
|
||||
|
|
|
@ -237,7 +237,7 @@ void SystemSolver<Sys>::solveCluster(boost::shared_ptr<Cluster> cluster, Sys& sy
|
|||
int params=0, constraints=0;
|
||||
typename Kernel::number_type scale = 1;
|
||||
|
||||
//get the ammount of parameters and constraint equations we need
|
||||
//get the amount of parameters and constraint equations we need
|
||||
typedef typename boost::graph_traits<Cluster>::vertex_iterator iter;
|
||||
std::pair<iter, iter> it = boost::vertices(*cluster);
|
||||
|
||||
|
|
|
@ -140,7 +140,7 @@ struct Module3D {
|
|||
|
||||
template<typename T>
|
||||
void set(const T& geometry, Identifier id);
|
||||
//somehow the base class set funtion is not found
|
||||
//somehow the base class set function is not found
|
||||
template<typename T>
|
||||
void set(const T& geometry);
|
||||
|
||||
|
|
|
@ -392,7 +392,7 @@ struct ModuleShape3D {
|
|||
|
||||
template<typename T>
|
||||
void set(const T& geometry, ID id);
|
||||
//somehow the base class set funtion is not found
|
||||
//somehow the base class set function is not found
|
||||
template<typename T>
|
||||
void set(const T& geometry);
|
||||
|
||||
|
@ -638,7 +638,7 @@ template<typename Derived>
|
|||
void ModuleShape3D<Typelist, ID>::type<Sys>::Shape3D_base<Derived>::remove(boost::shared_ptr<Geometry3D> g) {
|
||||
|
||||
//before we delete this shape by calling the system remove function, we need to remove
|
||||
//this geometry as this would be deleted again by the system call and we would go into infinit recoursion
|
||||
//this geometry as this would be deleted again by the system call and we would go into infinite recursion
|
||||
|
||||
//get the vector object where the geometry is part of
|
||||
typename GeometryVector::const_iterator it;
|
||||
|
@ -659,7 +659,7 @@ template<typename Derived>
|
|||
void ModuleShape3D<Typelist, ID>::type<Sys>::Shape3D_base<Derived>::remove(boost::shared_ptr<Derived> g) {
|
||||
|
||||
//before we delete this shape by calling the system remove function, we need to remove
|
||||
//this geometry as this would be deleted again by the system call and we would go into infinit recoursion
|
||||
//this geometry as this would be deleted again by the system call and we would go into infinite recursion
|
||||
|
||||
//get the vector object where the geometry is part of
|
||||
typename ShapeVector::const_iterator it;
|
||||
|
@ -680,7 +680,7 @@ template<typename Derived>
|
|||
void ModuleShape3D<Typelist, ID>::type<Sys>::Shape3D_base<Derived>::remove(boost::shared_ptr<Constraint3D> g) {
|
||||
|
||||
//before we delete this shape by calling the system remove function, we need to remove
|
||||
//this geometry as this would be deleted again by the system call and we would go into infinit recoursion
|
||||
//this geometry as this would be deleted again by the system call and we would go into infinite recursion
|
||||
|
||||
//get the vector object where the geometry is part of
|
||||
typename ConstraintVector::const_iterator it;
|
||||
|
|
|
@ -99,7 +99,7 @@ public:
|
|||
void draw();
|
||||
|
||||
private:
|
||||
//we need two seperate visual representations, as both constraint parts have different
|
||||
//we need two separate visual representations, as both constraint parts have different
|
||||
//placements.
|
||||
ViewProviderConstraintInternal internal_vp;
|
||||
|
||||
|
|
|
@ -141,7 +141,7 @@ int main( int argc, char **argv )
|
|||
}
|
||||
catch(...)
|
||||
{
|
||||
cerr << "An unknown exception has occured!!!" << endl;
|
||||
cerr << "An unknown exception has occurred!!!" << endl;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -15,7 +15,7 @@ DEFINE_GUID(IID_IExtractImage,
|
|||
#define IEIFLAG_OFFLINE 0x0008 // if the extractor shouldn't hit the net to get any content neede for the rendering
|
||||
#define IEIFLAG_GLEAM 0x0010 // does the image have a gleam ? this will be returned if it does
|
||||
#define IEIFLAG_SCREEN 0x0020 // render as if for the screen (this is exlusive with IEIFLAG_ASPECT )
|
||||
#define IEIFLAG_ORIGSIZE 0x0040 // render to the approx size passed, but crop if neccessary
|
||||
#define IEIFLAG_ORIGSIZE 0x0040 // render to the approx size passed, but crop if necessary
|
||||
#define IEIFLAG_NOSTAMP 0x0080 // returned from the extractor if it does NOT want an icon stamp on the thumbnail
|
||||
#define IEIFLAG_NOBORDER 0x0100 // returned from the extractor if it does NOT want an a border around the thumbnail
|
||||
#define IEIFLAG_QUALITY 0x0200 // passed to the Extract method to indicate that a slower, higher quality image is desired, re-compute the thumbnail
|
||||
|
|
|
@ -163,7 +163,7 @@ typedef unsigned __int64 uint64_t;
|
|||
// here get the warnings of too long specifiers disabled (needed for VC6)
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning( disable : 4251 )
|
||||
# pragma warning( disable : 4996 ) // supress depricated warning for e.g. open()
|
||||
# pragma warning( disable : 4996 ) // suppress depricated warning for e.g. open()
|
||||
#if defined(WIN64) || defined(_WIN64) || defined(__WIN64__)
|
||||
# pragma warning( disable : 4244 )
|
||||
# pragma warning( disable : 4267 )
|
||||
|
|
Loading…
Reference in New Issue
Block a user