Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
node-sass
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
楚学文
node-sass
Commits
eb153df1
Commit
eb153df1
authored
Aug 28, 2012
by
Aaron Leung
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implementing adjust-hue.
parent
e8192e00
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
37 additions
and
8 deletions
+37
-8
context.cpp
context.cpp
+1
-0
functions.cpp
functions.cpp
+33
-8
functions.hpp
functions.hpp
+3
-0
No files found.
context.cpp
View file @
eb153df1
...
@@ -101,6 +101,7 @@ namespace Sass {
...
@@ -101,6 +101,7 @@ namespace Sass {
// HSL Functions
// HSL Functions
register_function
(
hsla_descriptor
,
hsla
);
register_function
(
hsla_descriptor
,
hsla
);
register_function
(
hsl_descriptor
,
hsl
);
register_function
(
hsl_descriptor
,
hsl
);
register_function
(
adjust_hue_descriptor
,
adjust_hue
);
register_function
(
invert_descriptor
,
invert
);
register_function
(
invert_descriptor
,
invert
);
// Opacity Functions
// Opacity Functions
register_function
(
alpha_descriptor
,
alpha
);
register_function
(
alpha_descriptor
,
alpha
);
...
...
functions.cpp
View file @
eb153df1
...
@@ -131,33 +131,40 @@ namespace Sass {
...
@@ -131,33 +131,40 @@ namespace Sass {
b
=
b
/
255.0
;
b
=
b
/
255.0
;
double
v
,
m
,
vm
,
r2
,
g2
,
b2
;
double
v
,
m
,
vm
,
r2
,
g2
,
b2
;
double
h
=
0
,
s
=
0
,
l
=
0
;
double
h
=
0
,
s
=
0
,
l
=
0
;
v
=
r
>
g
?
r
:
g
;
v
=
r
>
g
?
r
:
g
;
v
=
v
>
b
?
v
:
b
;
v
=
v
>
b
?
v
:
b
;
m
=
r
<
g
?
r
:
g
;
m
=
r
<
g
?
r
:
g
;
m
=
m
<
b
?
m
:
b
;
m
=
m
<
b
?
m
:
b
;
l
=
(
m
+
v
)
/
2.0
;
l
=
(
m
+
v
)
/
2.0
;
if
(
l
<=
0.0
)
return
new_Node
(
""
,
0
,
h
,
s
,
l
);
if
(
l
<=
0.0
)
return
new_Node
(
""
,
0
,
h
,
s
,
l
);
vm
=
v
-
m
;
vm
=
v
-
m
;
s
=
vm
;
s
=
vm
;
if
(
s
>
0.0
)
s
/=
(
l
<=
0.5
)
?
(
v
+
m
)
:
(
2.0
-
v
-
m
);
if
(
s
>
0.0
)
s
/=
(
l
<=
0.5
)
?
(
v
+
m
)
:
(
2.0
-
v
-
m
);
else
return
new_Node
(
""
,
0
,
h
,
s
,
l
);
else
return
new_Node
(
""
,
0
,
h
,
s
,
l
);
r2
=
(
v
-
r
)
/
vm
;
r2
=
(
v
-
r
)
/
vm
;
g2
=
(
v
-
g
)
/
vm
;
g2
=
(
v
-
g
)
/
vm
;
b2
=
(
v
-
b
)
/
vm
;
b2
=
(
v
-
b
)
/
vm
;
if
(
r
==
v
)
h
=
(
g
==
m
?
5.0
+
b2
:
1.0
-
g2
);
if
(
r
==
v
)
h
=
(
g
==
m
?
5.0
+
b2
:
1.0
-
g2
);
else
if
(
g
==
v
)
h
=
(
b
==
m
?
1.0
+
r2
:
3.0
-
b2
);
else
if
(
g
==
v
)
h
=
(
b
==
m
?
1.0
+
r2
:
3.0
-
b2
);
else
h
=
(
r
==
m
?
3.0
+
g2
:
5.0
-
r2
);
else
h
=
(
r
==
m
?
3.0
+
g2
:
5.0
-
r2
);
h
/=
6.0
;
h
/=
6.0
;
return
new_Node
(
""
,
0
,
h
,
s
,
l
);
return
new_Node
(
""
,
0
,
h
,
s
,
l
);
}
}
Function_Descriptor
adjust_color_descriptor
=
//
Function_Descriptor adjust_color_descriptor =
{
"adjust_color 1"
,
"$color"
,
0
}
//
{ "adjust_color 1", "$color", 0 }
Function_Descriptor
adjust_color_2_descriptor
=
//
Function_Descriptor adjust_color_2_descriptor =
{
"adjust_color 2"
,
"$color"
,
"2"
)
//
{ "adjust_color 2", "$color", "2")
Node
adjust_color_impl
(
const
Node
parameters
,
map
<
Token
,
Node
>&
bindings
,
Node_Factory
&
new_Node
)
{
//
Node adjust_color_impl(const Node parameters, map<Token, Node>& bindings, Node_Factory& new_Node) {
blah
;
//
blah;
}
//
}
double
h_to_rgb
(
double
m1
,
double
m2
,
double
h
)
{
double
h_to_rgb
(
double
m1
,
double
m2
,
double
h
)
{
if
(
h
<
0
)
++
h
;
if
(
h
<
0
)
++
h
;
...
@@ -217,7 +224,25 @@ namespace Sass {
...
@@ -217,7 +224,25 @@ namespace Sass {
// color.line() = bindings[parameters[0].token()].line();
// color.line() = bindings[parameters[0].token()].line();
return
color
;
return
color
;
}
}
Function_Descriptor
adjust_hue_descriptor
=
{
"adjust-hue"
,
"$color"
,
"$degrees"
,
0
};
Node
adjust_hue
(
const
Node
parameters
,
map
<
Token
,
Node
>&
bindings
,
Node_Factory
&
new_Node
)
{
Node
rgb_col
(
bindings
[
parameters
[
0
].
token
()]);
Node
degrees
(
bindings
[
parameters
[
1
].
token
()]);
if
(
rgb_col
.
type
()
!=
Node
::
numeric_color
)
throw_eval_error
(
"first argument to adjust-hue must be a color"
,
rgb_col
.
path
(),
rgb_col
.
line
());
if
(
!
degrees
.
is_numeric
())
throw_eval_error
(
"second argument to adjust-hue must be numeric"
,
degrees
.
path
(),
degrees
.
line
());
Node
hsl_col
(
rgb_to_hsl
(
rgb_col
[
0
].
numeric_value
(),
rgb_col
[
1
].
numeric_value
(),
rgb_col
[
2
].
numeric_value
(),
new_Node
));
return
hsla_impl
(
hsl_col
[
0
].
numeric_value
()
+
degrees
.
numeric_value
(),
hsl_col
[
1
].
numeric_value
(),
hsl_col
[
2
].
numeric_value
(),
rgb_col
[
3
].
numeric_value
(),
new_Node
);
}
Function_Descriptor
invert_descriptor
=
Function_Descriptor
invert_descriptor
=
{
"invert"
,
"$color"
,
0
};
{
"invert"
,
"$color"
,
0
};
Node
invert
(
const
Node
parameters
,
map
<
Token
,
Node
>&
bindings
,
Node_Factory
&
new_Node
)
{
Node
invert
(
const
Node
parameters
,
map
<
Token
,
Node
>&
bindings
,
Node_Factory
&
new_Node
)
{
...
...
functions.hpp
View file @
eb153df1
...
@@ -101,6 +101,9 @@ namespace Sass {
...
@@ -101,6 +101,9 @@ namespace Sass {
extern
Function_Descriptor
hsl_descriptor
;
extern
Function_Descriptor
hsl_descriptor
;
Node
hsl
(
const
Node
parameters
,
map
<
Token
,
Node
>&
bindings
,
Node_Factory
&
new_Node
);
Node
hsl
(
const
Node
parameters
,
map
<
Token
,
Node
>&
bindings
,
Node_Factory
&
new_Node
);
extern
Function_Descriptor
adjust_hue_descriptor
;
Node
adjust_hue
(
const
Node
parameters
,
map
<
Token
,
Node
>&
bindings
,
Node_Factory
&
new_Node
);
extern
Function_Descriptor
invert_descriptor
;
extern
Function_Descriptor
invert_descriptor
;
Node
invert
(
const
Node
parameters
,
map
<
Token
,
Node
>&
bindings
,
Node_Factory
&
new_Node
);
Node
invert
(
const
Node
parameters
,
map
<
Token
,
Node
>&
bindings
,
Node_Factory
&
new_Node
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment